本帖最后由 tyyhmtyyhm 于 2018-3-5 19:21 编辑
笔记七:易犯错误模型——类中为什么需要成员函数先看源码,在VS2010环境下无法编译通过,在VS2013环境下可以编译通过,并且可以运行,只是运行结果并不是我们期待的结果。 最初通过MyCircle类定义对象c1时,为对象分配内存空间,r没有初始化,其值为乱码,pi为3.1415926,area为乱码。 【cin>>c1.r】这个语句为c1.r赋值,假设为10,然后执行【cout<<c1.area<<endl】,我们来看,执行cout时是从内存空间中拿c1.area的值,这个值在定义对象时候已经确定是一个乱码值,此处不会执行【double area=pi*r*r】语句,因此输出乱码。 如果想获取正确的结果,那就需要成员函数,在成员函数中进行计算。 【C++】笔记系列均为原创,转载请注明转自微号:Lightspeed-Tech 或 AutoCode 更多精彩资料,请关注!
|