c++ - 访问私有(private)构造函数 C++

标签 c++ constructor

我希望只有A可以创建B。(我还想在头文件中导出otherAPIs方法。) 但我不能将 B 构造函数设为私有(private)。有没有办法解决我的问题? 谢谢。

class B
{
private:
B()
{ // doing something}
public:
void otherAPIs()
{}
};

class A
{
public:
B *getSomething()
{ //doing something
   return new B()} 
};

最佳答案

如果你只想让A创建B,你可以通过添加让A成为B的 friend friend class A;B的声明体中。

关于c++ - 访问私有(private)构造函数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22827268/

相关文章:

c++ - 错误 'list' 未在范围内声明

c++ - 从 C++ 中的任何类型的文件中读取字节及其十进制值

继承类的 C++ 模板构造函数

c++ - 我应该在构造函数中调用成员函数吗

c# - 如何从无参数构造函数调用带有 2 个参数的构造函数?

c# - 静态构造函数和继承

c++ - 是否有一个(Linux)g++相当于/fp :precise and/fp:fast flags used in Visual Studio?

c++ - 错误 : No matching function for call to 'fraction::add(fraction&, fraction&)'

c# - C++ 运算符等于 C#

javascript - 根据对象迭代动态获取数据库值