gpt4 book ai didi

c++ - 封装在头文件中

转载 作者:太空狗 更新时间:2023-10-29 20:22:10 25 4
gpt4 key购买 nike

我有一个包含 2 个类的头文件。 A 类(这是一个非常大的类)和继承 A 类的 B 类。我不希望人们被允许创建 A 类的对象,甚至不能看到它的静态成员。他们应该只与 B 类一起工作。这样做的最佳方式是什么。

(一般来说A是一个“辅助类”)

最佳答案

要限制类的创建,将类 A 的构造函数设为私有(private)并将类 B 声明为友元类。这样只有B可以实例化A。

class B;
class A
{
private:
A();
friend class B;
};

这同样适用于方法(静态的或非静态的):将它们全部设为私有(private)并且 friend 语句将允许 B 访问 A 的成员。

编辑:也适用于 protected 。

关于c++ - 封装在头文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39243587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com