继承:调用基类的成员和方法
Inheritance : calling members and methods of the base class
我开始理解c++中的继承概念。我们有这样的说法:
派生类继承基类的成员和方法。
因此,我运行以下示例来应用上述语句:
class A {
public:
int a;
A(int val){a=val;}
void afficher(){ cout << a <<endl; }
};
class B : A {
public:
B(int val) : A(val){};
};
int main(){
A a(5);
a.afficher();
B b(6);
b.a = 4;
b.afficher();
return 0;
}
调用成员a
时出现以下错误,并且实例b
afficher()
的方法与语句相矛盾:
error: 'int A::a' is inaccessible
error: 'void A::afficher()' is inaccessible
我的问题:如何通过派生实例调用基类的成员和方法?
与成员一样,使用class
关键字声明的类型的基的默认可访问性为private
。因此,您的B
继承了作为私有成员A
的所有内容,因此会出现这些错误。
将其更改为class B: public A
.
相关文章:
- 从私有成员变量的成员方法返回unique_ptr
- 如何将类成员方法的参数列表自动填充写入可变参数?
- 如何对绑定的成员方法进行typedef,然后将该类型用作模板参数
- 从类C++外部调用指向成员方法的成员指针
- 在另一个 QThread 上运行成员方法时,无法将事件发送到其他线程拥有的对象
- 对成员类型的成员方法使用 std::result_of<>
- 我是否应该在构造函数或成员方法中进行大量初始化工作
- 如何检查是否调用了成员方法
- 我怎么可能从尚未定义某些成员方法的类创建实例?(C++)
- 有没有办法强制对 clang-format/clang-tidy 中的类成员/方法使用 "this->"?
- 指向 objc 类成员方法的函数指针,用于C++
- 对集合调用成员方法
- JetBrains CLion 不能建议字符串的成员方法
- 我无法在班级中获得MED股票来调用成员方法
- 如何在本机回调中使用Cython CDEF类成员方法
- 通过指针从for_each循环中访问成员方法
- 调用成员方法时会丢失此指针
- 为什么点运算符(.)可以与私有类成员/方法一起使用
- 静态调度以使用聚合类型的层次结构更正成员方法
- 显式模板专用化不能具有存储类 - 成员方法专用化