【带头学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;
}
相关推荐
若水晴空初如梦13 分钟前
QT聊天项目DAY14
开发语言·qt
幼稚园的山代王17 分钟前
python3基础语法梳理(一)
开发语言·python
MrSkye29 分钟前
React入门:组件化思想?数据驱动?
前端·react.js·面试
Gyoku Mint30 分钟前
机器学习×第五卷:线性回归入门——她不再模仿,而开始试着理解你
人工智能·python·算法·机器学习·pycharm·回归·线性回归
幼稚诠释青春39 分钟前
面试实例题
java·开发语言
weixin_4576653941 分钟前
C++11新标准
开发语言·c++
阿蒙Amon42 分钟前
C#封装HttpClient:HTTP请求处理最佳实践
开发语言·http·c#
前端农民晨曦43 分钟前
深入浏览器事件循环与任务队列架构
前端·javascript·面试
大白爱琴1 小时前
使用python进行图像处理—像素级操作与图像算术(4)
开发语言·图像处理·python
穗余1 小时前
WEB3全栈开发——面试专业技能点P6后端框架 / 微服务设计
面试·职场和发展