我正在学习智能指针和shared_from_this. 在类继承关系中,会很难理解。
我有两个基类CA和CB,它们派生自enable_shared_from_this,子类CC派生自CA和CB。我想从类自身中取出三个类的共享指针,所以我写了sharedCAfromThis,sharedCBfromThis和sharedCCfromthis。
class CA : private enable_shared_from_this<CA> {
public:
shared_ptr<CA> sharedCAfromThis() { return shared_from_this(); }
virtual ~CA() {};
void print() {
cout << "CA" << endl;
}
};
class CB : private enable_shared_from_this<CB> {
public:
shared_ptr<CB> sharedCBfromThis() { return shared_from_this(); }
virtual ~CB() {};
void print() {
cout << "CB" << endl;
}
};
class CC : public CA, …Run Code Online (Sandbox Code Playgroud)