大家帮忙看看这个程序!!

dxlove958 2006-12-08 10:41:26
#include<iostream>
#include<cstring>
using namespace std;

class Person
{
public:
Person(){}
Person(const char* n, const char* s, const int a)
{
name = new char[strlen(n)+1];
strcpy(name,n);
sex = new char[strlen(s)+1];
strcpy(sex,s);
age = a;
}
void print() const
{
cout<<"Name:"<<name
<<"Sex:"<<sex
<<"Age:"<<age<<endl;
}
~Person()
{
delete [] name;
delete [] sex;
}

protected:
char* name;
char* sex;
int age;

};

void main()
{
Person person("wang","男",28);
return;
}

========================================
编译能通过,但为什么没有输出呢?
...全文
141 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cugb31032 2006-12-08
  • 打赏
  • 举报
回复
//this 是一个指针而不是对象
//所以应该这样
//this->name


或者 (*this).name = ......
dxlove958 2006-12-08
  • 打赏
  • 举报
回复
怎么给指针分配空间?
aronzhou 2006-12-08
  • 打赏
  • 举报
回复
记住还要给指针分配空间
zlbruce 2006-12-08
  • 打赏
  • 举报
回复
this 是一个指针而不是对象
所以应该这样
this->name
TANKTHT 2006-12-08
  • 打赏
  • 举报
回复
楼上正确 分~~~~~~~~~~~
javasky0 2006-12-08
  • 打赏
  • 举报
回复
呵呵
dxlove958 2006-12-08
  • 打赏
  • 举报
回复
在main()函数加上
person.print();
就可以输出了:)

为什么
Person(string name, string sex, int age)
{
this.name = name;
this.sex = sex;
this.age = age;
}
会是错的呢?

cugb31032 2006-12-08
  • 打赏
  • 举报
回复
你根本没有调用输出函数啊。
void main()
{
Person person("wang","男",28);
person.print();
return;
}

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧