Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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* derivedpointer = new Derived;
- derivedpointer->base_int; // You can access this just fine
- Base* basepointer = new Derived;
- static_cast<Derived*>(basepointer)->derived_int; // Can now access, because we have a derived pointer
- class Derived : public Base
- class Base
- {
- protected:
- virtual int &GetInt()
- {
- //Die horribly
- }
- public:
- int base_int;
- };
- class Derived : Base
- {
- int &GetInt()
- {
- return derived_int;
- }
- public:
- int derived_int
- };
- basepointer->GetInt() = 0;
- template<typename DerivedT>
- class Base
- {
- public:
- int accessDerivedField()
- {
- auto derived = static_cast<DerivedT*>(this);
- return derived->field;
- }
- };
- class Derived : public Base<Derived>
- {
- public:
- int field;
- };
- int main()
- {
- auto obj = new Derived;
- obj->accessDerivedField();
- }
Add Comment
Please, Sign In to add comment