如何在c++中只继承成员函数?

How do I inherit only the member functions in C++?

本文关键字:继承 成员 函数 c++      更新时间:2023-10-16

假设我有一个基类base和一个派生类derived。

class Base
{
public:
    void f1(void);
    ...
    int data1;
    ...
};
class Derived : Base
{
... add stuff here that's unique to Derived
};

派生类如何只继承函数(即f1())而不继承Base类的数据(即data1) ?

拥有派生类中不需要的基类属性是不良继承的暗示

在您的情况下,我假设您将有另一个派生类需要这些数据成员,否则它将没有意义

那么为什么不这样做呢:

class Base
{
public:
    void f1(void);
    ...
};
class DerivedClass : Base
{
... add stuff here that's unique to Derived
};
class DerivedClass2 : Base
{ 
     public:
         int data1;
         ....
}

如果您有更多的派生类需要这些数据成员,我建议您创建单独的基类,一个用于函数,一个用于数据成员。