如何使类完全不可导出。有什么办法吗?

问题描述 投票:0回答:4

嗨,任何人都让我知道如何使课程根本不可导出。有什么办法吗?请告诉我。哈拉

c++ class inheritance
4个回答
6
投票

请参阅this解释如何做到这一点,以及为什么它可能不是一个好主意,由Bjarne Stroustrup(C ++自己的创造者)。


4
投票

如果您的类具有私有构造函数,则无法实例化派生类。

请参阅C ++ FAQ Lite上的"How can I set up my class so it won't be inherited from?"


3
投票

让ctor(s)私密。

class not_derivable { private: not_derivable(){} };

class derived : public not_derivable {};

int main() { derived d; // diagnostic }

或者dtor:

class not_derivable { private: ~not_derivable(){} };

class derived : public not_derivable {};

int main() { not_derivable *nd = new not_derivable; derived d; //diagnostic }

2
投票

使构造函数私有。

© www.soinside.com 2019 - 2024. All rights reserved.