这个代码在vs10中编译不通过 vs13中编译通过执行乱码:
class MyCircle
{
public:
double r;
double pi=3.14;
double area = pi*r*r;
};
void main()
{
MyCircle c1; //此时 r area = pi*r*r;中的r都是随机分配 area = pi*r*r;在声明的时候已经执行完了 此时area代表的内存空间里面存放的是一个垃圾值Z
cout << "请输入c1圆的半径:";
cin >> c1.r;
//虽然r赋值了 但是area = pi*r*r;并没有执行 因为 double area = pi*r*r; 在声明初始化的时候已经执行了 此中的r是一个随机值
//结果:造成area变量是一个乱码
//当输出c1.area的时候只是从变量标示的内存空间中拿值 值已经在声明的时候确定
cout << "c1圆形的面积是:" << c1.area << endl;//乱码 所以此时取出来的值还是系统随机分配的值
system("pause");
}