【带头学C++】----- 九、类和对象 ---- 9.1 类和对象的基本概念----(9.1.4---9.1.6)

目录

[9.1.4 设计立方体类](#9.1.4 设计立方体类)

​编辑

[9.1.5 成员函数在类的外部实现](#9.1.5 成员函数在类的外部实现)

[9.1.6 类在其他源文件的实现步骤(实现类在不同文件的实现,后续引出构造函数)](#9.1.6 类在其他源文件的实现步骤(实现类在不同文件的实现,后续引出构造函数))

注意:类定义在同文件testclass.h中,而testclass.cpp是用来实现(声明)类的成员函数文件。


9.1.4 设计立方体类

现在如下图所示题目,设计一个立方体类,并且可以求出立方体的面积、体积,并最后判断是否相等,这里严格来说应该是设计一个长方体,立方体是长宽高都相等才是。

注意点:

完整代码:

cpp 复制代码
#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_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;
}
相关推荐
我材不敲代码17 分钟前
Python实现打包贪吃蛇游戏
开发语言·python·游戏
身如柳絮随风扬1 小时前
Java中的CAS机制详解
java·开发语言
-dzk-2 小时前
【代码随想录】LC 59.螺旋矩阵 II
c++·线性代数·算法·矩阵·模拟
韩立学长3 小时前
【开题答辩实录分享】以《基于Python的大学超市仓储信息管理系统的设计与实现》为例进行选题答辩实录分享
开发语言·python
风筝在晴天搁浅3 小时前
hot100 78.子集
java·算法
Jasmine_llq3 小时前
《P4587 [FJOI2016] 神秘数》
算法·倍增思想·稀疏表(st 表)·前缀和数组(解决静态区间和查询·st表核心实现高效预处理和查询·预处理优化(提前计算所需信息·快速io提升大规模数据读写效率
超级大只老咪3 小时前
快速进制转换
笔记·算法
froginwe113 小时前
Scala 循环
开发语言
m0_706653233 小时前
C++编译期数组操作
开发语言·c++·算法
故事和你913 小时前
sdut-Java面向对象-06 继承和多态、抽象类和接口(函数题:10-18题)
java·开发语言·算法·面向对象·基础语法·继承和多态·抽象类和接口