-
-
[讨论]c++ primer 中的一点小问题,关于作用域的...
-
发表于:
2011-10-12 19:47
4581
-
[讨论]c++ primer 中的一点小问题,关于作用域的...
class Person{
public:
Person(const string &n,const string &add,const int &h):name(n),address(add),height(h){}
string GetName()
{
return name;
}
string GetAddress()
{
return address;
}
void xx(int height,int width)
{
cout<<this->height*width;
cout<<endl;
cout<<Person::height*width;
}
bool isequl(const Person & p)
{
Person const *pp;
cout<<typeid(pp).name()<<endl;
cout<<typeid(this).name()<<endl;
//++this;////测试用途
return name==p.name;
}
private:
string name;
string address;
int height;
};
调用:
Person yangmi("yangmi","beijing",3);
Person handsome("yangmi","shanghai",4);
cout<<yangmi.GetAddress()<<endl;
cout<<yangmi.isequl(handsome);
cout<<endl;
yangmi.xx(24,5);
问题:
cout<<this->height*width;
这样可以理解,说明用的是this所指对象(也就是调用该成员函数的对象)的height成员变量,无可厚非的用法。
cout<<Person::height*width;
这样的用法怎么解释或理解呢?
Person::height代表什么?代表height属于类内部的成员?一个类可以有多个实例,那这种调用如何体现出来此时的height成员是哪个对象的?
求解释。。。thx!!!
[课程]Android-CTF解题方法汇总!