示例代码
#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/