如果我分配一个类的对象Derived
(基类为Base
),并将指向该对象的指针存储在指向基类的变量中,我如何访问该对象的成员Derived
class?
这是一个例子:
class Base
{
public:
int base_int;
};
class Derived : public Base
{
public:
int derived_int;
};
Base* basepointer = new Derived();
basepointer-> //Access derived_int here, is it possible? If so, then how?
不,您无法访问derived_int
因为derived_int
是其一部分Derived
, while basepointer
是一个指向Base
.
不过你也可以反过来做:
Derived* derivedpointer = new Derived;
derivedpointer->base_int; // You can access this just fine
派生类继承基类的成员,而不是相反。
但是,如果您的basepointer
指向一个实例Derived
然后你可以通过强制转换来访问它:
Base* basepointer = new Derived;
static_cast<Derived*>(basepointer)->derived_int; // Can now access, because we have a derived pointer
请注意,您需要将继承更改为public
first:
class Derived : public Base
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)