目录
9.1.4 设计立方体类
编辑
9.1.5 成员函数在类的外部实现
9.1.6 类在其他源文件的实现步骤(实现类在不同文件的实现,后续引出构造函数)
注意:类定义在同文件testclass.h中,而testclass.cpp是用来实现(声明)类的成员函数文件。
9.1.4 设计立方体类
现在如下图所示题目,设计一个立方体类,并且可以求出立方体的面积、体积,并最后判断是否相等,这里严格来说应该是设计一个长方体,立方体是长宽高都相等才是。
注意点:
完整代码:
#include <iostream>
#include <string>class Cube{
private:int mLenth;//长int mWidth;//宽int mHeight;//高
public:void cubeInit(int ml,int mw,int mH){mLenth = ml;mWidth = mw;mHeight = mH;}//获取长宽高int getL(void){return mLenth;}int getW(void){return mWidth;}int getH(void){return mHeight;}//计算面积int getcubeS(){return (mLenth*mWidth + mLenth*mHeight + mWidth*mHeight)*2;}//计算体积int getcubeV(){return mLenth*mWidth*mHeight;}bool compareCube2(Cube &ob2){if(mLenth == ob2.getL() && mWidth == ob2.getW() && mHeight == ob2.getH()){return true;}return false;}
};bool compareCube1(Cube &ob1,Cube &ob2)
{if(ob1.getL() == ob2.getL() && ob1.getH() == ob2.getH() && ob1.getW() == ob2.getW()){return true;}else{return false;}
}void test04(){Cube ob1;ob1.cubeInit(10,20,30);cout << "面积:" <<ob1.getcubeS()<<endl;cout << "体积:" <<ob1.getcubeV()<<endl;Cube ob2;ob2.cubeInit(5,6,7);cout << "面积:" <<ob2.getcubeS()<<endl;cout << "体积:" <<ob2.getcubeV()<<endl;//全局函数在类外部实现访问局部变量(公有方法访问私有的成员)if(compareCube1(ob1,ob2)){cout << "相等" <<endl;}else{cout << "不相等" <<endl;}//局部成员函数在类内部调用(直接使用对象名进内部比较)if(ob1.compareCube2(ob2)){cout << "相等" <<endl;}else{cout << "不相等" <<endl;}
}
int main() {test04();return 0;
}
9.1.5 成员函数在类的外部实现
9.1.6 类在其他源文件的实现步骤(实现类在不同文件的实现,后续引出构造函数)
在Qt新建一个项目
这里可以直接选择在.cpp文件实现,注意,编写代码要严格区分大小写。
注意:类定义在同文件testclass.h中,而testclass.cpp是用来实现(声明)类的成员函数文件。
代码:
testclass.h
#ifndef TESTCLASS_H
#define TESTCLASS_Hclass TestClass
{
private:int mA;
public:void setA(int a);int getA();
};#endif // TESTCLASS_H
testclass.cpp
#include "testclass.h"void TestClass::setA(int a)
{mA = a;
}int TestClass::getA()
{return mA;
}
main
#include "testclass.h"
void test05(){TestClass ob1;ob1.setA(111);cout << "ob1 = " <<ob1.getA()<<endl;
}
int main() {test05();return 0;
}