读书人

请问一个C++笔试题

发布时间: 2012-02-24 16:30:39 作者: rapoo

请教一个C++笔试题
#include <iostream>
using namespace std;

class People
{
private:
char name[20];
public:
People(char* str){strcmp(name,str);
}
void Hello()
{
cout < < "People: " < <name < <endl;
}
protected:

};

class Teach : public People
{
private:
char name[20];
public:
Teach(char* str):People( "Teach "){strcmp(name,str);
}
void Hello()
{
cout < < "Teach: " < <name < <endl;
}
};

class Student : public People
{
private:
char name[20];
public:
Student(char* str):People( "Student "){strcmp(name,str);
}
void Hello()
{
cout < < "Student: " < <name < <endl;
}
};
void main()
{
People *p;
People a( "wangwei ");
Teach b( "yuyuan ");
Student c( "qiaobing ");
p = &a;
p -> Hello();

p = &b;
p -> Hello();

p = &c;
p -> Hello();
}

[解决办法]
strcmp 只是比较 两个c-string , 并不会给 name 赋值, 因此所有的 name 都没有初始值,
输出一堆乱码...

读书人网 >C++

热点推荐