C++中是不允許virtual 構造函數的
以vc
雖然不明白這個跟inline有什麼關系
構造函數和析構函數都可以是private的
例如
class A
{
private:
A();
virtual ~A();
};
class B : public A
{
public:
B();
virtual ~B();
};
B b;
以上代碼是編譯不通過的
解決方法只有friend
class A
{
private:
A();
virtual ~A();
friend class B;
};
或者friend函數也可以在內部生成A的變量
From:http://tw.wingwit.com/Article/program/c/201311/11107.html