您的位置:首页 > 编程语言 > C语言/C++

C++的继承参数问题

2008-06-23 00:03 330 查看
#include <iostream.h>

class A

{

public:

A(int x){this->x=x;}

void show(){}

protected:

int x;

};

class B : public A

{

public:

B(int mx=0):A(mx){y=100;}

void show(A& a)

{

cout<<a.x;

}

B operator+(B& b)

{

return this->x+b.x;

}

protected:

int y;

};

void main()

{

B b(10),b2(1);

A a(100);

b2.show(a);

}

上面代码出现错误,由于A中的x是protected的,虽然B是A的派生类,但是由于A只是作为B的某个方法的参数,它仍然只会从外部进行读取,所以不能访问它的内部。但如果参数是本身的类的话,就能正常读取。这说明了派生类不能读取参数基类的非公共成员。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: