目录
9.1.6 类在其他源文件的实现步骤(实现类在不同文件的实现,后续引出构造函数)
注意:类定义在同文件testclass.h中,而testclass.cpp是用来实现(声明)类的成员函数文件。
现在如下图所示题目,设计一个立方体类,并且可以求出立方体的面积、体积,并最后判断是否相等,这里严格来说应该是设计一个长方体,立方体是长宽高都相等才是。
注意点:
完整代码:
- #include
- #include
-
- 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 << "面积:" <
getcubeS()< - cout << "体积:" <
getcubeV()< -
- Cube ob2;
- ob2.cubeInit(5,6,7);
- cout << "面积:" <
getcubeS()< - cout << "体积:" <
getcubeV()< - //全局函数在类外部实现访问局部变量(公有方法访问私有的成员)
- if(compareCube1(ob1,ob2))
- {
- cout << "相等" <
- }else{
- cout << "不相等" <
- }
- //局部成员函数在类内部调用(直接使用对象名进内部比较)
- if(ob1.compareCube2(ob2))
- {
- cout << "相等" <
- }else{
- cout << "不相等" <
- }
- }
- int main() {
- test04();
- return 0;
- }
9.1.5 成员函数在类的外部实现
9.1.6 类在其他源文件的实现步骤(实现类在不同文件的实现,后续引出构造函数)
在Qt新建一个项目
这里可以直接选择在.cpp文件实现,注意,编写代码要严格区分大小写。
注意:类定义在同文件testclass.h中,而testclass.cpp是用来实现(声明)类的成员函数文件。
代码:
testclass.h
- #ifndef TESTCLASS_H
- #define TESTCLASS_H
-
-
- class 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;
- }
-
-
-
相关阅读:
网关(Gateway)- 自定义过滤器工厂
堆 (带图详解)
RabbitMQ 的快速使用
Python中的深度学习库有哪些?
基于正点原子stm32的mini板的TFTLCD显示实验
vue2.x引入threejs
03_学习springdoc与微服务结合_简述
Lumiprobe 双功能交联剂丨Sulfo-Cyanine5 双-NHS 酯
数学建模——非线性规划
linux文件锁
-
原文地址:https://blog.csdn.net/Phofomy/article/details/134712084