小编dek*_*kst的帖子

在虚函数中访问派生类成员变量

class Car {
    class BaseState {
       explicit BaseState(Car* vehicle) : mVehicle(vehicle) {}
       virtual void run() = 0;

       Car* mVehicle;
    }
    class State1 : public BaseState {
       explicit State1(Car* vehicle) : BaseState(vehicle) {}
       virtual void run() {
           // use data of Car
           ...
           doSomething();
       }
       virtual void doSomething() {
       }
    }
    class State2 : public BaseState {
    }
    ...
}

class Convertible: public Car {
    class State1 : public Car::State1 {
       explicit State1(Convertible* vehicle) : Car::State1(vehicle) {}
       virtual void doSomething() { …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism inheritance templates

6
推荐指数
1
解决办法
1040
查看次数

标签 统计

c++ ×1

inheritance ×1

polymorphism ×1

templates ×1