有没有什么办法可以在朋友函数中不允许私有构造,如果我们的类中有私人构造函数和朋友函数。只有静态方法应该是负责对象创建和其他比这个编译器应该是闪烁的错误讯息不允许在朋友函数中使用私有构造函数调用
#include <iostream>
#include <memory>
using namespace std;
class a
{
public:
void see()
{
cout<<"Motimaa";
}
static a& getinstance()
{
static a instance;
return instance;
}
private:
a() {};
friend void access();
};
void access()
{
a obj;
obj.see();//still friend function can access
}
int main()
{
a::getinstance().see();
access();
return 1;
}
号当你做了它的朋友,你认为这个功能是做正确的事。它可以遍历你的私有变量;如果你不能相信它的实现,通过私有构造函数创建对象应该是你最小的担心。 –