当前位置:首页 C++ > 正文

c++继承的三种方式

作者:野牛程序员:2023-08-07 04:51:04 C++阅读 2957

在 C++ 中,继承是面向对象编程的基本特性之一,它允许一个类(派生类)从另一个类(基类)继承成员和方法。C++ 支持三种类型的继承方式:

  1. 公有继承(Public Inheritance): 在公有继承中,派生类继承了基类的公有成员和保护成员,并且这些成员在派生类内部仍然是公有或保护的。私有成员不可被继承。

class Base {
public:
    int publicVar;
    void publicFunc() {
        cout << "Base::publicFunc()" << endl;
    }
protected:
    int protectedVar;
    void protectedFunc() {
        cout << "Base::protectedFunc()" << endl;
    }
private:
    int privateVar;
    void privateFunc() {
        cout << "Base::privateFunc()" << endl;
    }
};

class Derived : public Base {
    // Derived 类继承了 Base 类的公有成员和保护成员
};

int main() {
    Derived derived;
    derived.publicVar = 10; // 可以访问继承的公有成员
    derived.publicFunc(); // 可以调用继承的公有成员函数
    return 0;
}
  1. 保护继承(Protected Inheritance): 在保护继承中,派生类继承了基类的保护成员,并且这些成员在派生类内部仍然是保护的。公有成员和私有成员不可被继承。

class Derived : protected Base {
    // Derived 类继承了 Base 类的保护成员
};

int main() {
    Derived derived;
    derived.publicVar = 10; // 错误,不能访问继承的公有成员
    derived.publicFunc(); // 错误,不能调用继承的公有成员函数
    return 0;
}
  1. 私有继承(Private Inheritance): 在私有继承中,派生类继承了基类的私有成员,并且这些成员在派生类内部仍然是私有的。公有成员和保护成员不可被继承。

class Derived : private Base {
    // Derived 类继承了 Base 类的私有成员
};

int main() {
    Derived derived;
    derived.publicVar = 10; // 错误,不能访问继承的公有成员
    derived.publicFunc(); // 错误,不能调用继承的公有成员函数
    return 0;
}

需要注意的是,继承方式只影响派生类对基类成员的访问权限,不影响派生类的其他特性。通常,公有继承是最常见的继承方式,保护继承和私有继承较少使用,它们主要用于实现细节隐藏或者实现特定的继承行为。选择继承方式时应根据具体需求进行权衡。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击