案例来源自某小破站up猪IT黑马
题目要求:
1.求出立方体的面积和体积
2.分别用全局函数和成员函数判断两个立方体是否相等。
利用成员函数判断两个立方体是否相等:
bool issameByclass(Cube &c)
{
if (m_l== c.getlen() && m_w == c.getwid() && m_h == c.gethig())
{
return true;
}
return false;
false;
}
完整代码如下:
#include<iostream>
#include<string>
using namespace std;
class Cube
{
//设置长宽高,得到长宽高。
public:
void setlen(int len) //设置长
{
m_l = len;
}
int getlen() //得到长
{
return m_l; //返回需要一个数值,所以用整形int
}
void setwid(int wid) //设置宽
{
m_w = wid;
}
int getwid() //返回需要一个数值,所以用整形int
{
return m_w; //得到宽
}
void sethig(int hig) //设置高
{
m_h = hig;
}
int gethig() //得到高
{
return m_h; //返回需要一个数值,所以用整形int
}
//获取立方体面积
int square()
{
return 2 * m_l * m_w + 2 * m_l * m_h + 2 * m_w * m_h;
}
//获取立方体体积
int volume()
{
return m_l * m_w * m_h;
}
//利用成员函数判断两个立方体是否相等
bool issameByclass(Cube &c)
{
if (m_l== c.getlen() && m_w == c.getwid() && m_h == c.gethig())
{
return true;
}
return false;
false;
}
private:
int m_l; //长
int m_w; //宽
int m_h; //高
};
//利用全局函数判断 两个立方体是否相等。
bool issame(Cube &c1, Cube &c2) //为了传入数据更简单些,通过引用方式进行传递
{ //不会再拷贝出一份数据
if (c1.getlen() == c2.getlen() && c1.getwid() == c2.getwid() && c1.gethig() == c2.gethig())
{
return true;
}
return false;
}
int main()
{
Cube c1;
c1.setlen(11);
c1.setwid(10);
c1.sethig(10);
Cube c2;
c2.setlen(10);
c2.setwid(11);
c2.sethig(10);
cout << "c1的面积为:" << c1.square() << endl;
cout << "c2的面积为:" << c2.square() << endl;
cout << "c1的体积为:" << c1.volume() << endl;
cout << "c2的体积为:" << c2.volume() << endl;
//调用函数进行比较
bool ret =issame(c1, c2); //调用声明过的bool issame
if (ret) //令ret也为bool类型,返回值为true或false
{
cout << "c1和c2是相等的" << endl;
}
else
{
cout << "c1和c2是不相等的" << endl;
}
system("pause");
return 0;
}