#include "stdafx.h"
#include
using namespace std;
class Data_rec
{
public:
Data_rec()
{
name = NULL;
}
~Data_rec()
{
delete[]name;
}
void insert_name(char* pname)
{
delete[]name;
name = new char[strlen(pname) + 1];
strcpy_s(name,255, pname);
}
void print()
{
cout << "Name:" << name << endl;
}
private:
char* name;
};
////////////////////////////////////////////////////////////////////////
class Student :virtual public Data_rec
{
public:
Student() :Data_rec(){ id = NULL;}
~Student(){ delete[]id; }
void insert_id(char* pid)
{
delete[]id;
id = new char[strlen(pid) + 1];
strcpy_s(id,25, pid);
}
void print()
{
Data_rec::print();
cout << "ID:" << endl;
}
private:
char* id;
};
///////////////////////////////////////////////////////////////////////////////////////
class Teacher :virtual public Data_rec
{
public:
Teacher() :Data_rec(){ sal = 0; }
void insert_sal(float psal){ sal = psal; }
void print()
{
Data_rec::print();
cout << "Sal:" << sal << endl;
}
private:
float sal;
};
///////////////////////////////////////////
class Postgrad :public Student
{
public:
Postgrad() :Student(){ dn = NULL; }
~Postgrad()
{
delete[]dn;
}
void insert_dn(char* p)
{
delete[]dn;
dn = new char[strlen(dn) + 1];
strcpy_s(dn,25, p);
}
void print()
{
Student::print();
cout << "Dept name:" << dn << endl;
}
private:
char* dn;
};
/////////////////////////////////////////////
class Tpost :public Teacher, public Postgrad
{
public:
Tpost(): Teacher(), Postgrad(){}
void print()
{
Teacher::print();
Postgrad::print();
}
};
int main()
{
Teacher t;
Tpost tp;
t.insert_name("Li Min");
t.insert_sal(5000);
tp.insert_name("zhang jun");
tp.insert_sal(1500);
tp.insert_id("08901");
tp.insert_dn("computer");
t.print();
tp.print();
return 0;
}
今天学习C++时遇到的,编译是成功的,但运行时会出现异常。这是课本上的程序。请各位大神帮忙看看是什么问题。谢谢啦