这是一个拷贝构造函数的定义:(x,y为私有成员)
ponit::point(point &p)
{x=p.x;
y=p.y;
}
不是说不能通过对象名引用私有成员吗 这里怎么可以这样引用啊啊
ponit::point(point &p)
{x=p.x;
y=p.y;
}
不是说不能通过对象名引用私有成员吗 这里怎么可以这样引用啊啊
解决方案 »
- 抛开Windows需要花钱买的原因,为什么Windows服务器少?
- SHFileOperation函数在system权限下的问题
- opencv 图像旋转 边界值填充or白色填充
- 如果获取带CheckBox的TreeView的?
- 有谁知道在win2k下如何用程序把电源直接关掉(即非正常关机)?
- 请问几个关于按钮的属性问题
- 怎样让客户端觉得我的两个服务端对它来说就象一个服务一样?
- 关于数组的大小
- 为什么: char* s="asdf"; sizeof(s)=4而不是5?
- 回调消息??
- 菜鸟问题: 怎么把自己写的ActiveX插件发到网上去呢? 100分不够再加
- 如何获取列表框一共存在多少项?我用SDK编程,应该向列表框发送哪个消息?
class point
{private:
int x,y;
public:
point(int xx=0,int yy=0){x=xx;y=yy;}
point(point &p);
int get_x() {return x;}
int get_y() {return y;}
};
point::point(point &p)
{x=p.x;
y=p.y;
}
请问怎么可以这样调用啊???x,y是私有成员啊 怎么能通过对象名调用啊p.x p.y
第二,就算是私有成员变量也没有问题,都是point类嘛。不信你试试,只要是类内的函数都可以这样访问的。
void fun(point &p);void fun::point(point &p)
{x=p.x;
y=p.y;
}效果也一样。
ponit::point(point &p)
{x=p.x;
y=p.y;
}其实是这样,你知道吧:
ponit::point(point &p)
{this->x=p.x;
this->y=p.y;
}你看this指针和p的类型是一样的,只不过一个是指针,一个是实例,但他们对成员函数和成员变量的访问权限是完全一样,这样你应该理解了吧?