C++爱好者 - 网友留言

1269阅读 0评论2008-12-17 3JTwF2T
分类:

#include
class name
{
char *p1;
public:
getname()
{
char *p=new char[5];------------------//你把这里的char  *   去掉,,,,就行了。。。。。。。。原因在下面:
cin>>p1;
cout<<"name is "<}
dispname()
{
cout<<"name is "<}
};
void main()
{
name obj;
obj.getname();
obj.dispname();
}
//不好意思,,,第一次看的时候我把函数dispname();屏蔽了,,所以并没有领会你的意思,,这次应该是对的 。。。。
如果你加上了char  * 就表示重新定义了一次p1,,,这样,,,,在类实例化的过程中,,,将有一次重新分配内存,,,并覆盖原来p1的定义,,,,所以就只能在函数A 中可见,,,,而在函数B 中是不可见的 ,,,
你可以通过     cout << & p1 << endl;来查看p1的地址,此时的 p1的地址,,,与报错的p1的地址是不同的,,,






--------------------next---------------------

上一篇:C++爱好者 - 网友留言
下一篇:C++爱好者 - 网友留言