有沒有什麼辦法可以在朋友函數中不允許私有構造,如果我們的類中有私人構造函數和朋友函數。只有靜態方法應該是負責對象創建和其他比這個編譯器應該是閃爍的錯誤訊息不允許在朋友函數中使用私有構造函數調用
#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;
}
號當你做了它的朋友,你認爲這個功能是做正確的事。它可以遍歷你的私有變量;如果你不能相信它的實現,通過私有構造函數創建對象應該是你最小的擔心。 –