面向对象——案例练习(3)判断两个立方体是否相等
利用全局函数实现
#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class Cube { public: void setABC(int a, int b, int c) { m_a = a; m_b = b; m_c = c; } int getArea() { return ((m_a*m_b) + (m_b*m_c) + (m_a*m_c)) * 2; } int getVolume() { return m_a*m_b*m_c; } int getA() { return m_a; } int getB() { return m_b; } int getC() { return m_c; } private: int m_a; int m_b; int m_c; }; //全局函数 bool judgeCube(Cube &c1, Cube &c2) { if (c1.getA() == c2.getA() && c1.getB() == c2.getB() && c1.getC() == c2.getC()) { return true; } else { return false; } } int main(void) { Cube c1; c1.setABC(10, 20, 30); Cube c2; c2.setABC(10, 20, 30); cout << "c1的体积是:" << c1.getVolume() << endl; cout << "c1的面积是:" << c2.getArea() << endl; if (judgeCube(c1, c2) == true) { cout << "相等" << endl; } else { cout << "不相等" << endl; } return 0; }
利用成员函数实现:
#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class Cube { public: void setABC(int a, int b, int c) { m_a = a; m_b = b; m_c = c; } int getArea() { return ((m_a*m_b) + (m_b*m_c) + (m_a*m_c)) * 2; } int getVolume() { return m_a*m_b*m_c; } int getA() { return m_a; } int getB() { return m_b; } int getC() { return m_c; }
//同类之间无私处 bool judgeCube(Cube &another) { if (m_a == another.m_a && m_b == another.m_b && m_c == another.m_c) { return true; } else { return false; } } private: int m_a; int m_b; int m_c; }; int main(void) { Cube c1; c1.setABC(10, 20, 30); Cube c2; c2.setABC(10, 20, 30); cout << "c1的体积是:" << c1.getVolume() << endl; cout << "c1的面积是:" << c2.getArea() << endl; if (c1.judgeCube(c2) == true) { cout << "相等" << endl; } else { cout << "不相等" << endl; } return 0; }