现有一个类MyString,其内部包含了字符串成员,请根据main函数代码完成其他部分代码的编写,main函数代码如下: int main() { MyString* str1 = new MyString("one"); MyString* str2 = new MyString("two"); MyString* str3 = new MyString("three"); cout << "目前对象个数为:" << MyString::GetN() << endl; cout << "我是对象:" << MyString::GetString(str1) << endl; delete str1; cout << "目前对象个数为:" << MyString::GetN() << endl; cout << "我是对象:" << MyString::GetString(str2) << endl; delete str2; cout << "目前对象个数为:" << MyString::GetN() << endl; cout << "我是对象:" << MyString::GetString(str3) << endl; delete str3; cout << "目前对象个数为:" << MyString::GetN() << endl; return 0; }
时间: 2023-08-20 12:13:33 浏览: 80
编写一个MyString类
4星 · 用户满意度95%
根据您提供的main函数代码,可以编写以下MyString类的代码:
```
#include <iostream>
#include <string>
using namespace std;
class MyString {
private:
static int count;
string str;
public:
MyString(string s) : str(s) {
count++;
}
~MyString() {
count--;
}
static int GetN() {
return count;
}
static string GetString(MyString* s) {
return s->str;
}
};
int MyString::count = 0;
int main() {
MyString* str1 = new MyString("one");
MyString* str2 = new MyString("two");
MyString* str3 = new MyString("three");
cout << "目前对象个数为:" << MyString::GetN() << endl;
cout << "我是对象:" << MyString::GetString(str1) << endl;
delete str1;
cout << "目前对象个数为:" << MyString::GetN() << endl;
cout << "我是对象:" << MyString::GetString(str2) << endl;
delete str2;
cout << "目前对象个数为:" << MyString::GetN() << endl;
cout << "我是对象:" << MyString::GetString(str3) << endl;
delete str3;
cout << "目前对象个数为:" << MyString::GetN() << endl;
return 0;
}
```
在MyString类中,使用了一个静态变量count来记录当前对象的个数,每创建一个对象就将count加1,每销毁一个对象就将count减1。同时,使用静态成员函数GetN()来获取当前对象个数,使用静态成员函数GetString()来获取指针所指向对象的字符串成员。在main函数中,通过new关键字创建了三个MyString类的对象,分别为str1、str2、str3,并输出当前对象个数和对象的字符串成员。接着使用delete关键字销毁了str1、str2、str3所指向的对象,并再次输出当前对象个数。最后,程序结束时输出当前对象个数。
阅读全文