拷贝构造函数,赋值运算符重载,友元输出重载
2013-09-16 14:01
232 查看
#include <iostream> using namespace std; class T{ public: T():buf(NULL){} T(char *s) { buf = new char[strlen(s) + 1]; strcpy(buf, s); } T(const T& t) { char* t_buf = t.buf; buf = new char[strlen(t_buf) + 1]; strcpy(buf, t_buf); } T& operator=(const T& t) { if(this == &t) return *this; char* b = new char[strlen(t.buf) + 1]; strcpy(b, t.buf); if(buf!=NULL) delete buf; buf = b; } ~T() { if(buf!=NULL) delete buf; } char* get_buf(){return buf;} friend ostream& operator<<(ostream& os, const T& t) { os<<t.buf; return os; } private: char *buf; }; int main() { T t("abcd"); cout<<t<<endl; return 0; }
相关文章推荐
- 模板类的友元重载,用C++代码实现
- C++ 指针悬挂和赋值操作符的重载,拷贝构造函数实现
- 重载printf输出到屏幕和文件
- 第九周试验任务1--定义Time类中的<<和>>运算符的重载,实现输入和输出。
- cpp 输出<< 重载
- 拷贝构造函数和赋值运算符的重载的调用次数问题
- C++运算符重载——输入/输出运算符
- C++运算符重载(注意点),友元(使用和优缺点)
- c++中重载操作符表,可以帮助重载哪些操作符,以及到底是重载为类方法还是类的友元方法
- C++输入操作符>> 输出操作符<<重载
- C++学习基础八——重载输入和输出操作符
- 构造函数, 拷贝构造函数, 赋值操作重载各种情况实例演示
- C++运算符重载以及友元
- 总结c++类的构造函数 拷贝构造函数 析构函数 赋值运算符重载的特点以及函数调用顺序
- 第九周实验任务二--定义Complex类中的<<和>>运算符的重载,实现输入和输出,使程序读起来更自然
- 拷贝构造函数、析构函数、赋值操作符重载、取地址操作符重载和const修饰的取地址操作符重载
- 浅谈c/c++中类的拷贝构造函数和重载赋值函数
- CodeSmith实用技巧(九):重载Render方法来控制输出
- C++重载输入和输出操作符以及IO标准库中的刷新输入缓冲区残留字符问题
- 第八周项目一(2)-友元 重载