【带头学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;
}
相关推荐
zmd-zk18 分钟前
flink学习(3)——方法的使用—对流的处理(map,flatMap,filter)
java·大数据·开发语言·学习·flink·tensorflow
daily_233319 分钟前
数据结构——小小二叉树第三幕(链式结构的小拓展,二叉树的创建,深入理解二叉树的遍历)超详细!!!
数据结构·c++·算法
圆蛤镇程序猿22 分钟前
【什么是SpringMVC】
开发语言
stone519539 分钟前
鸿蒙系统ubuntu开发环境搭建
c语言·ubuntu·华为·嵌入式·harmonyos
Domain-zhuo40 分钟前
JS对于数组去重都有哪些方法?
开发语言·前端·javascript
浦东新村轱天乐41 分钟前
神经网络反向传播算法公式推导
神经网络·算法·机器学习
laimaxgg43 分钟前
C++特殊类设计(不能被拷贝的类、只能在堆上创建对象的类、不能被继承的类、单例模式)
c++·单例模式
逝去的紫枫1 小时前
Python Selenium:Web自动化测试与爬虫开发
开发语言·python·selenium
SUN_Gyq1 小时前
什么是 C++ 中的模板特化和偏特化? 如何进行模板特化和偏特化?
开发语言·c++·算法
码上一元1 小时前
【百日算法计划】:每日一题,见证成长(026)
算法