我有一个基类和派生类,例如:
class Base {
public:
Base();
virtual doSomthing();
};
class Derivative : class Base {
public:
Derivative();
virtual doSomthing();
};
我知道如果我想在运行时从父亲改为儿子,我会做
Derivative& newDer = dynamic_cast<Derivative&>(baseInstance)
我的问题是我如何做相反的操作 - 从儿子变成父亲?
答案 0 :(得分:2)
不需要特定的施法操作。如果Derivative&
真的有这样的关系,那么Base&
会自动传递class Derivative : public Base {
// ^^^^^^
public:
Derivative();
virtual doSomthing();
};
public
假设您尝试从全局private
范围执行此操作。
我的问题是我如何做相反的操作 - 从儿子变为父亲?
继承关系需要在使用的范围内访问。您的示例具有public
继承,并且在Derivative
范围内无效。
As mentioned by @StoryTeller和@Peter它将在friend
内部类范围内使用任何类成员函数或git clone https://github.com/seomoz/simhash-py.git
cd simhash-py
git submodule update --init --recursive
ed函数/类。