类私有数据和主函数的变量重名,处理原则是?
栅栏价35/米,过道价20/平方米,过道宽3米,泳池半经键盘输入,编程计算机出输出过道和栅栏的造价
#include <iostream.h>
const float PI=(float)3.14159; //给出P的值
const float FencePrice=35.; //栅栏的单价
const float ConcretePrice=20.; //过道的水泥单价
class Circle //声明类Circle及其数据和方法
{
public: //外部接口
Circle(float r); //构造函数
float Circumference(); //计算圆周长
float Area(); //计算机圆面积
private: //私有数据成员
float radius;
};
Circle::Circle(float r){radius=r;} //构造函数初始化数据成员radius
float Circle::Circumference()
{
return 2*PI*radius;
}
float Circle::Area() //计算机圆面积
{
return PI*radius*radius;
}
void main()
{
float radius;
float FenceCost,ConcreteCost;
cout < < "enter pool: ";
cin> > radius;
Circle pool(radius);
Circle PoolRim(radius+3);
FenceCost=PoolRim.Circumference()*FencePrice;
cout < < "Fencing! " < <FenceCost < <endl;
ConcreteCost=(PoolRim.Area()-pool.Area() )*ConcretePrice;
cout < < "Concrete! " < <ConcreteCost < <endl;
}
==================
上面类 Circle的私有数据 radius和下面main主函数的radius重名,那么处理原则是啥的?
[解决办法]
给私有数据变量名称加前缀m_
m_radius
[解决办法]
以局部的为主
调用外部的写上 域名::
[解决办法]
弄清楚名字空间域,类域,局部域.
[解决办法]
不同的作用域,没有冲突,且类中的radius是私有的,可以不考虑名字相同问题.
[解决办法]
也不存在局部作用域变量屏蔽更大作用域变量的问题.