c++ - 我可以防止某些函数在 C++ 中被继承吗?

标签 c++ inheritance

示例代码

#include <iostream>

using namespace std;

class Base
{
public:
    virtual void Func()
    {
        cout << "\nIn base func";
    }
};

class Derived : public Base
{
public:
    void Func()
    {
        cout << "\nIn derived";
    }
};

class Derived2 : public Derived
{
public:
    void Func()
    {
        cout << "\nIn derived2";
    }
};

int main()
{
    Base* lnewbase = new Derived2();

    lnewbase->Func();

    return 0;
}

例如,在上面的代码中,我不希望 Derived 的 Func() 被继承(C# 中的密封),这就是为什么没有 virtual 关键字的原因,尽管我知道在这种情况下它不会改变任何东西.有没有什么方法可以在确保它仍然是公共(public)方法的同时禁止继承该函数?

最佳答案

没有; C++ 没有等同于 C# 的 sealed 修饰符。

关于c++ - 我可以防止某些函数在 C++ 中被继承吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6190928/

相关文章:

c++ - 在 size_t 中使用负整数是否安全?

c++ - std::swap 丢失了基于类型的别名分析使用的信息?

c++ - 寻找一个好的 C++ 库来解析 AMF3

java - Java 中的类型转换,技术信息

c++ - g++ 无法链接共享对象的静态版本

JavaScript 对象继承问题

c# - 继承问题,从继承类的某些数据上获取 NULL

css - IE 7 - 关于 css 类继承的错误

java - 从给定实例动态创建扩展匿名类(在运行时覆盖实例中的方法)

c++ - 如何使用 MFC 创建 VST 插件?