Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2342519
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:08:59

#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---------------------

阅读(1244) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~