(1)定义一个字符串类CStrOne,包含一个存放字符串的数据成员str1,能够通过构造函数初始化字符串,通过成员函数显示字符串的内容; (2)在此基础上派生出CStrTwo类,增加一个存放字符串的数据成员str2,并能通过派生类的构造函数传递参数,初始化两个字符串str1和str2; (3)在CStrTwo中定义一个成员函数进行两个字符串的合并以及输出。(字符串合并可使用标准库函数strcat,需要包含头文件string.h); 编写完整的程序实现并测试。
时间: 2023-05-11 21:02:50 浏览: 183
以下是CStrOne和CStrTwo类的定义及实现:
```c++
#include <iostream>
#include <string.h>
using namespace std;
class CStrOne {
protected:
char* str1;
public:
CStrOne(const char* s) {
str1 = new char[strlen(s) + 1];
strcpy(str1, s);
}
void display() {
cout << str1 << endl;
}
~CStrOne() {
delete[] str1;
}
};
class CStrTwo : public CStrOne {
protected:
char* str2;
public:
CStrTwo(const char* s1, const char* s2) : CStrOne(s1) {
str2 = new char[strlen(s2) + 1];
strcpy(str2, s2);
}
void mergeAndDisplay() {
char* mergedStr = new char[strlen(str1) + strlen(str2) + 1];
strcpy(mergedStr, str1);
strcat(mergedStr, str2);
cout << mergedStr << endl;
delete[] mergedStr;
}
~CStrTwo() {
delete[] str2;
}
};
int main() {
CStrOne str1("Hello");
str1.display();
CStrTwo str2("Hello", "World");
str2.mergeAndDisplay();
return 0;
}
```
输出结果为:
```
Hello
HelloWorld
```
以上是完整的程序实现和测试。
阅读全文