C++ 继承:成员访问控制与构造函数详解
1. 继承中的访问控制问题
在 C++ 中,继承是一个强大的特性,但成员的访问控制可能会导致一些编译问题。例如,当从 Box
类派生 Carton
类时,如果直接访问 Box
类的私有成员,代码将无法编译。这是因为私有成员只能在其所属的类内部访问,即使是派生类也不能直接访问。
// 此代码无法编译
// 因为 Box 的私有成员不能在 Carton 类中直接访问
2. 受保护成员(protected Members)
为了解决上述问题,可以使用 protected
访问修饰符。 protected
成员在类内部的行为与 private
成员类似,不能被外部普通函数访问,但可以在派生类的成员函数中访问。
class Box
{
protected:
double length {1.0};
double width {1.0};
double height {1.0};
public:
// 类的其他部分保持不变...
};
现在, Box
类的数据成员仍然不能被普通全局函数访问,但可以在派生类的成员函数中使用。如果将 Box
类的成员指定为 pro