首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

大家帮忙看看,为什么编译没错,执行却出错了?解决办法

2012-04-04 
大家帮忙看看,为什么编译没错,执行却出错了??#includeiostream#include stringusing namespace stdcl

大家帮忙看看,为什么编译没错,执行却出错了??
#include<iostream>
#include <string>
using namespace std;
class Person
{
private:
int age;
char *name;
//p=name;

public:
Person(int,char*);
~Person();
void print();
void print()const;
void ModifyAge();

};
Person::Person(int n,char*na)//可以向字符型指针传递字符吗?
{
age=n;
name=new char[strlen(na)+1];
strcpy(na,name);
}
void Person::print()
{
cout<<"age"<<age<<"name"<<name<<endl;
cout<<"this is general Print()."<<endl;
}
void Person::print()const
{
cout<<"age"<<age<<"name"<<name<<endl;
cout<<"this is const Print()."<<endl;
}
Person::~Person()
{
delete []name;
;
}
//void Person::ModifyAge(){age++;}

void main()
{
const Person pl(17,"wu");cout<<"output const object pl"<<endl;
pl.print();
}


[解决办法]
Person::Person(int n,char*na)//可以向字符型指针传递字符吗?
{
age=n;
name=new char[strlen(na)+1];
strcpy(na,name);
}
这个构造函数有问题,应该是把na的值赋给name吧,这样strcpy(name,na);
[解决办法]

探讨

Person::Person(int n,char*na)//可以向字符型指针传递字符吗?
{
age=n;
name=new char[strlen(na)+1];
strcpy(na,name);
}
这个构造函数有问题,应该是把na的值赋给name吧,这样strcpy(name,na);

[解决办法]
请问为什么会调用const的print呢?
[解决办法]
因为const Person pl ,所以调用CONST的PRINT函数,
[解决办法]
探讨

请问为什么会调用const的print呢?

热点排行