一个公有派生类的对象在使用上可以被当作基类的对象,反之则禁止。
具体表现在:
派生类的对象可以隐含转换为基类对象。
公有继承表示派生类对象是基类对象的一种特殊类型
派生类对象可以被隐式转换为基类对象,这样你就可以把一个派生类对象传递给接受基类对象的函数,或者将其赋值给基类对象。
class Base {
public:
void show() {
std::cout << "Base class" << std::endl;
}
};
class Derived : public Base {
public:
void display() {
std::cout << "Derived class" << std::endl;
}
};
int main() {
Derived d; // 派生类对象
Base b = d; // 派生类对象隐式转换为基类对象
b.show(); // 使用基类的成员
// b.display(); // 错误,基类对象不能调用派生类的成员
return 0;
}
派生类的对象可以初始化基类的引用。
int main() {
D