剑指offer--赋值运算符函数
2017-03-18 21:48
309 查看
#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<string.h> using namespace std; // 剑指offer // 赋值运算符函数 class String { public: // 构造函数 String(const char* str=NULL) { if (str != NULL) { _str = new char[strlen(str) + 1]; strcpy(_str, str); } else { _str = new char[1]; *_str = '\0'; } } // 拷贝构造函数 String(const String& s)// //:_str(NULL) { String tmp(s._str); swap(_str, tmp._str); } //运算符重载 String& operator=(const String& s)// 把返回类型设置成引用,支持链式连等 { // 参数传引用,形参到实参不调拷贝构造函数,提高效率 // s不改变,加上const 修饰 if (this != &s) { String tmp(s); swap(_str, tmp._str); } return*this; } //析构函数 ~String() { if (_str!=NULL) { delete[] _str; _str = NULL; } } private: char* _str; }; void Test() { String s1("123"); String s2(s1); String s3(NULL); s3 = s2 = s1; } int main() { Test(); system("pause"); return 0; }
相关文章推荐
- 剑指offer面试题之赋值运算符函数
- 剑指Offer_面试题01_赋值运算符函数
- 剑指offer 面试题1 赋值运算符函数
- 剑指Offer之赋值运算符函数解析
- 剑指offer——面试题1:赋值运算符函数
- 剑指offer题1_赋值运算符函数
- 剑指offer——赋值运算符函数
- 剑指Offer——带min()函数的栈
- 【剑指offer】面试题1:赋值运算符函数
- 剑指Offer——常用SQL语句、存储过程和函数
- 剑指offer题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 剑指offer 赋值运算符
- 【面试题】剑指Offer-49-模拟实现atoi()函数
- 剑指Offer-29-数组出现次数超过一半的数字-基于Partition函数的O(n)算法
- 【剑指Offer学习】【面试题21:包含min 函数的钱】
- 剑指offer中atoi()函数的实现
- 剑指offer 面试题21 包含 min 函数的栈
- [剑指Offer-字符串]请实现一个函数用来找出字符流中第一个只出现一次的字符。
- [剑指offer][面试题04]实现一个函数,将字符串中的空格替换为“ ”.例如输入“we are happy.”,输出"we are happy.".
- 剑指offer 之 partition函数运用