需求:
- 设计立方体类(Cube)
- 求出立方体的表面积(2ab+2ac+2bc)和体积(abc),分别用全局函数和成员函数判断两个立方体是否相等
#include<iostream>
using namespace std;
class Cube {
public:
Cube(int a, int b, int c):m_a(a),m_b(b),m_c(c){}
//求立方体的体积
int getVolume(){
return m_a*m_b*m_c;
}
//求立方体的表面积
int getArea() {
return 2 * (m_a*m_b + m_b*m_c + m_a*m_c);
}
//通过成员函数判断是否相等
bool compare(Cube &c) {
bool ret = m_a == c.getLength() && m_b == c.getWidth() && m_c == c.getHeight();
return ret;
}
int getLength() { // 获取长
return m_a;
}
int getWidth() { // 获取宽
return m_b;
}
int getHeight() { // 获取高
return m_c;
}
private:
int m_a;
int m_b;
int m_c;
};
// 全局函数判断 两个立方体是否相等
//方法1
void compare1(Cube &c1, Cube &c2) {
if (c1.getHeight() == c2.getHeight() && c1.getLength() == c2.getLength() && c1.getWidth() == c2.getWidth()) {
cout << "compare1():两个立方体相等" << endl;
}
else {
cout << "compare1():两个立方体不相等" << endl;
}
}
//方法2
bool compare2(Cube &c1, Cube &c2) {
if (c1.getHeight() == c2.getHeight() && c1.getLength() == c2.getLength() && c1.getWidth() == c2.getWidth()) {
return true;
}
return false;
}
void test01() {
Cube c1(3, 6, 9);
Cube c2(13, 16, 19);
int area = c1.getArea();
cout << "立方体的表面积是:" << area << endl;
int volume = c1.getVolume();
cout << "立方体的体积是:" << volume << endl;
//通过成员函数判断立方体是否相等
bool ret = c1.compare(c2);
if (ret) {
cout << "compare():两个立方体相等" << endl;
}
else {
cout << "compare():两个立方体不相等" << endl;
}
//通过成员函数判断立方体是否相等
//方法1
compare1(c1, c2);
//方法2
bool ret2 = compare2(c1, c2);
if (ret2) {
cout << "compare2():两个立方体相等" << endl;
}
else {
cout << "compare2():两个立方体不相等" << endl;
}
}
int main() {
test01();
system("pause");
return 0;
}