クラスにフレンド関数を持つプライベートコンストラクターがある場合、フレンド関数でプライベート構築を許可しない方法はありますか。静的メソッドのみがオブジェクトの作成を担当する必要があり、このコンパイラ以外はエラーメッセージをフラッシュする必要があります
#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;
}