私有继承问题,大侠请进!!!
我想问下一个派生类用私有继承,那么相对于派生类来说基类的数据成员和成员函数应该都变成了私有的了,调用数据成员时则要用申请函数做个接口来调用,那为什么调用成员函数时就可以直接调用了吗???下面代码加粗的地方是疑问的地方,请高手赐教!!!#include <iostream>
#include <string>
using namespace std;
class person
{
public:
void display()
{
cout << "XM : " << name << endl;
cout << "NL : " << age << endl;
cout << "XB : " << sex << endl;
}
/*void s_sex(string x)
{
sex=x;
}*/
string name;
//private:
string sex;
protected:
int age;
};
class student : /*public*/private person
{
public:
void s_display()
{
display(); //为什么可以直接调用person类的函数???
cout << "XH : " << stuno << endl;
}
void s_sex(string s)
{
sex=s;
}
void n_name(string n)
{
name=n;
}
void a_age(int a)
{
age=a;
}
string stuno;
};
class student1:public student
{
public:
string zhiwu;
/*void nianl(int s_age)
{
age=s_age;
}*/
void s_display1()
{
s_display();
cout << "ZW : " << zhiwu << endl;
}
};
int main()
{
student1 stu1;
//stu1.name="liu ce";
stu1.n_name("liu ce");
stu1.a_age(21);
stu1.s_sex("MAN");
stu1.stuno="066";
stu1.zhiwu="xuexiweiyuan";
//stu1.nianl(21);
stu1.s_display1();
return 0;
}
[ 本帖最后由 a632034079 于 2010-8-5 15:56 编辑 ]