请大牛指点!!!

来源:百度知道 编辑:UC知道 时间:2024/05/31 06:26:46
定义一个基类Person,数据成员包含字符指针类型变量Name用于保存姓名,函数成员包括默认构造函数、带形参构造函数用于初始化数据成员、输出姓名的成员函数PrintName()。从Person类派生出Student类,增加长整型数据成员Number用于保存学号,派生类的函数成员包括带形参构造函数用于初始化数据成员,输出学生信息的成员函数PrintInfo()。要求:在函数PrintInfo()中需要调用基类的成员函数PrintName()。

不知道怎么把一个指针赋过去。。。谢谢。。。

#include<iostream>
#include<string>
using namespace std;

class person
{
public:
person();
person(char *a);
void printname();
protected:
char *name;
};

class Student:public person
{
public:
void PrintInfo();
Student(char *a,long b):person(*a) {number=b;}

private:
long number;
};

//就是这个带指针的构造函数怎么写呢。。。
person::person(char*a="null")
{
name=new char[strlen(a)+1];
strcpy(name,a);
};

void person::printname()
{
cout<<*name<<endl;
};

void Student::PrintInfo()
{
cout<<"name is: "

#include<iostream>
#include<string>
using namespace std;

class person
{
public:
person(char *a= NULL); /////////default parameter should be here
void printname();
protected:
char *name;
};

class Student:public person
{
public:
void PrintInfo();
Student(char *a,long b):person(a) {number=b;} /////////// "*a" changes to "a"

private:
long number;
};

person::person(char*a) ///////////////remove the "= NULL"
{
if(a != NULL)
{
name=new char[strlen(a)+1];
strcpy(name,a);
}
else
{
name=new char;
name[0] = '\0';
}
};

void person::printname()
{
cout<<name<<endl;
};

void Student::PrintInfo()
{
cout<<"name is: ";
printname();
cout