在C++中,子类(也称为派生类)可以从父类(也称为基类)继承属性和方法。当子类需要包含子成员时,通常是指子类拥有自己的成员变量和成员函数,这些成员可以是公有的、私有的或受保护的。下面是一个简单的例子来说明具有子成员的C++子类的概念:
#include <iostream>
// 父类
class Parent {
public:
Parent() : parentData(0) {}
void displayParentData() {
std::cout << "Parent Data: " << parentData << std::endl;
}
protected:
int parentData;
};
// 子类,继承自Parent
class Child : public Parent {
public:
Child() : childData(0) {}
void displayChildData() {
std::cout << "Child Data: " << childData << std::endl;
}
void displayAllData() {
displayParentData(); // 调用父类的方法
displayChildData(); // 调用子类的方法
}
private:
int childData;
};
int main() {
Child c;
c.parentData = 10; // 可以直接访问protected成员
c.childData = 20; // 错误:不能直接访问private成员
c.displayAllData();
return 0;
}
在这个例子中,Child
类继承了 Parent
类,并且有自己的私有成员变量 childData
和成员函数 displayChildData
和 displayAllData
。
在上述示例代码中,尝试直接访问私有成员变量 childData
会导致编译错误。解决方法是提供一个公有的接口来访问或修改私有成员变量。
class Child : public Parent {
public:
// ...
int getChildData() const { return childData; }
void setChildData(int data) { childData = data; }
// ...
};
这样,外部代码就可以通过 getChildData
和 setChildData
方法来安全地访问和修改 childData
成员变量了。
领取专属 10元无门槛券
手把手带您无忧上云