好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 dianfu5261 于 2022-1-3 07:32 编辑
通过成员判断两个立方体的那里,按道理应该只能用c.get*
而我直接用c.m_*也可以,运行不报错,结果也正常
是设计本来就行吗?(为什么)
#include <iostream>
using namespace std;
class cube {
public:
//设置长
void setL(int l) {
m_L = l;
}
//获取长
int getL() {
return m_L;
}
//设置宽
void setW(int w) {
m_W = w;
}
//获取宽
int getW() {
return m_W;
}
//设置高
void setH(int h) {
m_H = h;
}
//获取高
int getH() {
return m_H;
}
//求面积
int calculateS() {
return 2 * (m_L * m_W + m_L * m_H + m_W * m_H);
}
//求体积
int calculateV() {
return m_L * m_W * m_H;
}
//通过成员函数判断两个立方体是否相等
bool isSamebyclass(cube& c) {
//c.m_L = 11;
if (m_L * m_W * m_H == c.m_L * c.m_W * c.m_H) {//c.m_L和c.getL都能访问
return true;
}return false;
}
private:
int m_L;//长
int m_W;//宽
int m_H;//高
};
//利用全局函数判断两个立方体是否相等
bool isSame(cube& c1, cube& c2) {
if (c1.getL() * c1.getW() * c1.getH() == c2.getL() * c2.getW() * c2.getH()) {
return true;
}return false;
}
int main() {
cube c;
c.setL(10);
c.setW(10);
c.setH(10);
cout << "立方体的面积为:" << c.calculateS() <<"平方米"<< endl;
cout << "立方体的体积为:" << c.calculateV() << "立方米"<<endl;
cube c1;
c1.setL(10);
c1.setW(10);
c1.setH(10);
bool ret = isSame(c, c1);
if (ret) {
cout << "两个立方体相等" << endl;
}
else {
cout << "c1和c2不相等" << endl;
}
bool ret1 = c.isSamebyclass(c1);
if (ret1) {
cout << "两个立方体相等" << endl;
}
else {
cout << "c1和c2不相等" << endl;
}
system("pause");
return 0;
}
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|