C++面向对象例题:构建一个立方体类

Posted Zeker62

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++面向对象例题:构建一个立方体类相关的知识,希望对你有一定的参考价值。

练习案例1:设计立方体类

  • 设计立方体(Cube)
  • 求出立方体的面积和体积
  • 分别用全局函数成员函数判断两个立方体是否相等
#include <iostream>
#include <string>
using namespace std;
// 设计立方体(Cube)
// 求出立方体的面积和体积
// 分别用全局函数和成员函数判断两个立方体是否相等
class Cube
{
public:
    void setl(int length)
    {
        l = length;
    }
    int getl()
    {
        return l;
    }

    void setw(int W)
    {
        w = W;
    }
    int getW()
    {
        return w;
    }

    void seth(int high)
    {
        h = high;
    }
    int geth()
    {
        return h;
    }

    int calculateS(){
        return 2*l*w+2*w*h+2*l*h;
    }

    int calculateV(){
        return  l*w*h;
    }
    //利用成员函数判断
    bool isSameByClass(Cube &c){
        if(l==c.getl() && h==c.geth()&&w==c.getW())
        {
            return true;
        }
        return false;
    }

private: //属性都尽量设置为私有
    int l;
    int w;
    int h;
};

//全局函数判断两个立方体是否相等
bool isSame(Cube &c1,Cube &c2){
    if(c1.getl()==c2.getl() && c1.geth()==c2.geth()&&c1.getW()==c2.getW()){
        return true;
    }
    else{
        return false;
    }
}
int main()
{
    Cube c1;
    c1.setl(10);
    c1.setw(10);
    c1.seth(10);
    cout<<c1.calculateS()<<endl;
    cout<<c1.calculateV()<<endl;


    Cube c2;
    c2.setl(10);
    c2.setw(10);
    c2.seth(10);

    bool ret=isSame(c1,c2);
    if(ret==true){
        cout<<"same"<<endl;
    }else{
        cout<<"different"<<endl;
    }

    ret=c1.isSameByClass(c2);
    if(ret==true){
        cout<<"same"<<endl;
    }else{
        cout<<"different"<<endl;
    }
    system("pause");
    return 0;
}

这里的难点是全局函数和成员函数。
这里需要用到引用的方法来传递参数,因为我们并没有设计一个指针来指向对象的地址,要想改变对象的值必须要使用引用否则无法改变。
但是这道题只是一个比较大小的题,用不用&并不影响最后的结果。

全局函数可以直接传入两个对象进行比较,但是成员函数由于是在类里面,我们可以新建一个类再传入另一个类进行比较,相当于嵌套。

以上是关于C++面向对象例题:构建一个立方体类的主要内容,如果未能解决你的问题,请参考以下文章

C++之面向对象的三个基本特征

C++ 对象 & 类

C++作为面向对象语言的三个基本特征:封装,继承和————

Java基础——面向对象(内部类)

《C++ Primer》之面向对象编程

VSCode自定义代码片段——JS中的面向对象编程