[C++]C++继承学习笔记:从基类定义到子类扩展的示例

auto遍历array
const &auto json:array
需要加const限定符。
public:继承实战
以下是 C++ 中基类包含四个 string 成员、子类继承基类 的完整代码示例,包含构造函数、成员访问、继承权限等核心要点:
1. 基类定义(包含四个 string 成员)
cpp
#include <iostream>
#include <string>
using namespace std;
// 基类:包含四个 string 成员
class BaseString {
protected: // 子类需访问时用 protected,否则用 private
string str1;
string str2;
string str3;
string str4;
public:
// 带参构造函数
BaseString(string s1, string s2, string s3, string s4)
: str1(s1), str2(s2), str3(s3), str4(s4) {}
// 成员函数:打印所有字符串
void printStrings() const {
cout << "str1: " << str1 << endl;
cout << "str2: " << str2 << endl;
cout << "str3: " << str3 << endl;
cout << "str4: " << str4 << endl;
}
// 析构函数(基类建议虚析构,便于多态释放)
virtual ~BaseString() = default;
};
2. 子类定义(继承基类并扩展)
cpp
// 子类:公有继承 BaseString
class DerivedString : public BaseString {
private:
string extraStr; // 子类扩展成员
public:
// 子类构造函数:必须调用基类构造函数初始化基类成员
DerivedString(string s1, string s2, string s3, string s4, string extra)
: BaseString(s1, s2, s3, s4), extraStr(extra) {}
// 子类扩展函数:打印基类+子类成员
void printAll() const {
printStrings(); // 调用基类成员函数
cout << "extraStr: " << extraStr << endl;
}
};
3. 主函数测试
cpp
int main() {
// 创建子类对象
DerivedString ds("A", "B", "C", "D", "Extra");
// 调用子类函数
ds.printAll();
return 0;
}
核心要点
1. 继承权限: public 继承时,基类 public 成员在子类仍为 public , protected 成员仍为 protected ;若用 private 继承,基类成员在子类变为 private 。
2. 构造函数:子类构造函数必须通过初始化列表调用基类构造函数,否则基类默认构造函数会被调用(若未定义则编译报错)。
3. 虚析构函数:基类析构函数加 virtual ,确保通过基类指针删除子类对象时,析构函数能正确调用。
如果这篇文章对你有帮助,别忘了点个关注,我会持续分享更多开发避坑与实战干货,下次更新你就能第一时间看到啦~
更多推荐


所有评论(0)