在 C++ 中,可以使用虚拟基类和虚拟函数来实现访问所有子类中的某种变量。具体步骤如下:
class Base {
public:
virtual ~Base() {}
virtual int getValue() const = 0;
};
class Derived1 : public Base {
public:
int getValue() const override {
return value1;
}
private:
int value1 = 1;
};
class Derived2 : public Base {
public:
int getValue() const override {
return value2;
}
private:
int value2 = 2;
};
int main() {
Derived1 d1;
Derived2 d2;
Base& b1 = d1;
Base& b2 = d2;
std::cout << b1.getValue()<< std::endl; // 输出 1
std::cout << b2.getValue()<< std::endl; // 输出 2
return 0;
}
这样,我们就可以通过基类的虚拟函数来访问所有子类中的某种变量,而不需要在基类中定义该变量。这种方法可以减少代码量,并且更加灵活和易于维护。
领取专属 10元无门槛券
手把手带您无忧上云