先来看下面一段代码
1 #include<iostream> 2 3 using namespace std; 4 5 class Circle 6 { 7 public: 8 double pi = 3.1415926; 9 double r; 10 double area = pi*r*r; 11 12 double setArea() 13 { 14 return area = pi*r*r; 15 } 16 }; 17 18 int main() 19 { 20 Circle c1; 21 cout << "请输入半径:" << endl; 22 cin >> c1.r; 23 24 cout << c1.area << endl; 25 cout << c1.setArea() << endl; 26 27 system("pause"); 28 return 0; 29 }
运行结果:
请输入半径:10 2.69149e+124 314.159 请按任意键继续. . .
如运行结果所示,如果把面积area用成员变量来计算,计算的结果是错误,这是因为在类Circle创建对象c1后, 因为编译器不会主动调用 pi*r*r去计算,只是从内存中去取值,所以打印出来的area是一个很大的垃圾值.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步