ssy/c++上机思考题1.cpp

50 lines
1.2 KiB
C++
Raw Normal View History

2024-08-05 20:42:46 +05:30
#include <iostream>
#include <cstring>
class CTString {
private:
char *str;
static int objectCount; // 静态成员变量,用于记录对象个数
public:
CTString() {
str = NULL; // or str = 0;
objectCount++; // 增加对象计数
}
CTString(const char *s) {
str = new char[strlen(s) + 1];
strcpy(str, s);
objectCount++;
}
~CTString() {
objectCount--; // 先减少对象计数
delete[] str; // 释放字符串内存
}
void Print() {
if (str)
std::cout << str << std::endl;
else
std::cout << "空字符串" << std::endl;
}
void Copy(const char *s) {
delete[] str;
str = new char[strlen(s) + 1];
strcpy(str, s);
}
static int getObjectCount() {
return objectCount;
}
};
int CTString::objectCount = 0; // 静态成员变量初始化
int main() {
CTString *pstr;
pstr = new CTString;
pstr->Print();
pstr->Copy("hello");
pstr->Print();
std::cout << "总共创建的对象数量: " << CTString::getObjectCount() << std::endl;
delete pstr;
// 等待用户按下任意键后再退出
std::cin.get();
return 0;
}