c++ String普通构造函数,拷贝构造函数,赋值函数书写
来源:互联网 发布:福州地铁软件 编辑:程序博客网 时间:2024/05/01 08:47
#include <iostream>using namespace std;class String{public:String(const char* str = NULL); //普通构造函数String(const String& other); //拷贝构造函数~String(); //析构函数String& operator = (const String& other); //赋值char* toString(){return m_data;}private:char* m_data;};String::String(const char* str){ if(str == NULL){m_data = new char[1];*m_data = '\0';}else{int length = strlen(str);m_data = new char[length+1];if(m_data == NULL){printf("don't have enough memory!");}strcpy(m_data, str);}}String::~String(){if(m_data != NULL) delete[] m_data;}String::String(const String& other){int length = strlen(other.m_data); //私有m_data可以直接访问?m_data = new char[length + 1]; if(m_data == NULL){printf("don't have enough memory!");}strcpy(m_data, other.m_data);}String& String::operator = (const String& other){if(this == &other)return *this;delete[] m_data;int length = strlen(other.m_data);m_data = new char[length+1];strcpy(m_data, other.m_data);return *this;}void main(){ String s("123"); //普通printf("%s\n", s.toString());String s1(s); //拷贝 printf("%s\n", s1.toString());String s2 = s; //赋值printf("%s\n", s2.toString());}/*123123*/
0 0
- c++ String普通构造函数,拷贝构造函数,赋值函数书写
- 编写String类的普通构造函数、拷贝构造函数、析构函数、赋值函数
- String 的普通构造函数、拷贝构造函数、析构函数、赋值函数
- 写String类的普通构造函数,析构函数,拷贝构造函数和赋值函数
- 类String的普通构造、拷贝构造函数与赋值函数
- 【C++】拷贝构造函数和赋值函数
- 构造函数 拷贝函数 赋值构造函数
- 构造函数 拷贝函数 赋值构造函数
- 构造函数、拷贝构造函数、赋值函数
- 赋值函数、拷贝构造函数
- 拷贝构造函数赋值函数
- 拷贝构造函数,赋值函数
- 用String类的实验,说明拷贝构造函数、重载等号赋值函数、和普通构造函数的区别
- 拷贝,赋值构造函数赋值
- c++_7: 拷贝构造函数和赋值构造函数
- C ++ 拷贝构造函数和赋值构造函数 非常经典
- 拷贝构造函数和赋值构造函数
- 拷贝构造函数与赋值构造函数
- 设置HOME环境变量来修改git默认查找的ssh-key的路径
- iOS的时间格式转换
- Java中的Set,List,Map的区别
- DD命令
- 你应该首先保护哪些应用程序?这个问题本身问错了!
- c++ String普通构造函数,拷贝构造函数,赋值函数书写
- iOS:An error was encountered while running (Domain = FBSOpenApplicationErrorDomain, Code = 4)
- web统计访问量
- Kafka delivery保证(kafka消息投递保证)
- Android 自定义View (三) 圆环交替 等待效果
- ListView几个比较特别的属性
- ios-day11-02(控制器的多种创建方式。init方法创建、通过storyboard的创建、通过xib创建)
- 一步一步写算法(之hash表)
- DNS bind9配置