)定义一个字符串类CStrOne,包含一个存放字符串的数据成员str1,能够通过构造函数初始化字符串,通过成员函数显示字符串的内容; (2)在此基础上派生出CStrTwo类,增加一个存放字符串的数据成员str2,并能通过派生类的构造函数传递参数,初始化两个字符串str1和str2; (3)在CStrTwo中定义一个成员函数进行两个字符串的合并以及输出。(字符串合并可使用标准库函数strcat,需要包含头文件string.h);
时间: 2023-05-14 10:05:45 浏览: 163
1. 定义CStrOne类:
```cpp
#include <iostream>
#include <string>
class CStrOne {
public:
CStrOne(const std::string& str) : str1(str) {}
void display() const {
std::cout << str1 << std::endl;
}
private:
std::string str1;
};
```
2. 派生CStrTwo类:
```cpp
#include <string>
class CStrTwo : public CStrOne {
public:
CStrTwo(const std::string& str1, const std::string& str2) : CStrOne(str1), str2(str2) {}
void mergeAndDisplay() const {
std::string mergedStr = str1;
mergedStr += str2;
std::cout << mergedStr << std::endl;
}
private:
std::string str2;
};
```
3. 使用:
```cpp
int main() {
CStrOne str1("Hello");
str1.display();
CStrTwo str2("Hello", "World");
str2.mergeAndDisplay();
return 0;
}
```
输出:
```
Hello
HelloWorld
```
注意:这里的字符串合并使用的是C++标准库函数`std::string::operator+=`,而不是`strcat`。`strcat`是C语言标准库函数,不建议在C++中使用。
阅读全文