首先,我想做个不可以被别人继承的类。已经实现了,代码如下,但是有些不明白的地方:
class Usable;
class Usable_lock { friend class Usable; private: Usable_lock() {} Usable_lock(const Usable_lock&) {} }; class Usable : public virtual Usable_lock { //就是在这里啦!!!! // ... public: Usable(); Usable(char*); // ... }; Usable a; class DD : public Usable { }; DD dd; // error: DD::DD() cannot access // Usable_lock::Usable_lock(): private member
在class Usable : public virtual Usable_lock { 行,如果我把virtual去掉,则类Usable可以被继承,也就是说DD dd;不会发生错误了。
问题是:virtual到底起什么作用???请教高手!!