只要对象具有受保护的访问权限,为什么该对象不可访问?

时间:2014-10-07 00:30:37

标签: c++ class object

给出以下代码:

class A {
public:
    int y;
    A(){
     int x = 10;
     cout << x << endl;
    }
} a;

没有问题。声明的对象a是可访问的。 但是,使用以下代码:

class A {
public:
    int y;
protected: 
    A(){
     int x = 10;
     cout << x << endl;
    }
} a;

创建对象a是不可能的,代码将无法编译。有人可以向我解释为什么尽管受保护的访问修饰符无法访问它?我错过了什么?谢谢。

1 个答案:

答案 0 :(得分:0)

受保护的访问说明符限制对同一类或派生类的成员函数的访问。换句话说,受保护的访问说明符允许派生类直接访问基类的成员,而不将这些成员公开给公众。受保护的继承类似于私有继承。但是,派生类派生的类仍然可以直接访问公共成员和受保护成员。公众(课外的东西)没有。