c++ 父类如何使用子类的属性
时间: 2023-12-13 07:05:18 浏览: 110
在 C++ 中,父类可以通过访问子类的公有成员函数来使用子类的属性。这是因为子类继承了父类的属性和方法,而公有成员函数是父类对外暴露的接口,可以被子类继承,并在子类中重写或扩展。
假设有一个父类 `Animal` 和一个子类 `Dog`,其中 `Dog` 继承了 `Animal` 类,那么在 `Animal` 类中就可以通过访问 `Dog` 类中的公有成员函数来使用 `Dog` 类的属性。例如:
```
class Animal {
public:
virtual void move() {
cout << "Animal moves" << endl;
}
};
class Dog : public Animal {
public:
void move() {
cout << "Dog moves" << endl;
}
void bark() {
cout << "Dog barks" << endl;
}
};
int main() {
Animal* pAnimal = new Dog();
pAnimal->move(); //调用的是子类 Dog 的 move() 函数
//pAnimal->bark(); //错误,父类不能访问子类的私有成员函数
delete pAnimal;
return 0;
}
```
在上面的例子中,父类 `Animal` 通过声明一个指向子类 `Dog` 的指针 `pAnimal`,然后调用 `pAnimal` 的公有成员函数 `move()` 来访问子类 `Dog` 的属性。由于 `Dog` 继承了 `Animal` 类,因此 `pAnimal` 能够调用子类 `Dog` 的重写的 `move()` 函数。但是,由于 `bark()` 函数是 `Dog` 类的私有成员函数,因此父类 `Animal` 不能访问它。
阅读全文