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++面向对象例题:构建一个立方体类的主要内容,如果未能解决你的问题,请参考以下文章