完成string
#include <iostream> #include <cstring> using namespace std; class myString { private: char *str; //记录c风格的字符串 int size; //记录字符串的实际长度 public: //无参构造 myString():size(10) { str = new char[size]; //构造出一个长度为10的字符串 strcpy(str,""); } //有参构造 myString(const char *s) { size = strlen(s); str = new char[size + 1]; strcpy(str,s); } //拷贝构造 myString(const myString & other) { size = other.size; str = new char[size +1]; strcpy(str,other.str); } //析构函数 ~myString() { delete []str; } //判空函数 bool emppty() { if(strlen(str) == 0) { return true; } else { return false; } } //size函数 int size1() { return size; } //c_str函数 const char * c_str() { return str; } //at函数 char &at(int pos) { return str[pos]; } }; int main() { //有参构造 char s[200] = " "; cout << "请输入一个字符串:"; gets(s); myString str(s); cout << "str = "<< str.c_str()<< endl; //拷贝构造函数 myString s2(s); cout <<"s2 = "<<s2.c_str() <<endl; cout<<"s2.size1() = "<<s2.size1()<<endl; cout<<"s2.c_str() = "<<s2. c_str()<<endl; cout<<"s2.at(7) = "<<s2.at(7)<<endl; return 0; }
C++ day3(类 初始化 析构 拷贝)
最新推荐文章于 2024-05-28 15:43:55 发布