#include "iostream"
using namespace std;
#if 1
class circle
{
public:
double r;
double pi = 3.1415926;
double area = pi*r*r;//初始化的时候已经执行了
//造成area是乱码
};
//2010编译不通过 但是在2013编译器能编译通过
void test()
{
circle pi;
cout << "请输入area" << endl;
cin >> pi.r;//给r赋值10
cout << pi.area << endl; //乱码
/*
为什么会乱码,从内存四区角度分析:
1、分配内存的同时需要初始化
double area = pi*r*r;//初始化的时候已经执行了,在你通过类型定义这个变量的时候,值已经固定下来了
造成area是乱码
执行pi.area时,只是从变量所标识的空间拿值,并没有执行
pi*r*r。 给r赋值跟执行 pi*r*r这条语句没有半毛线的关系。
引出成员函数。
*/
}
#endif
02_1 初学者的易犯模型
猜你喜欢
转载自blog.csdn.net/WUZHU2017/article/details/81122359
今日推荐
周排行