拷贝构造与重载运算符
来源:互联网 发布:路由器mac地址查询 编辑:程序博客网 时间:2024/06/18 05:59
C++学习笔记之四
1.拷贝运算符
含义:以一个对象为蓝本来构造另一个函数。
上一节已经讲到了拷贝函数的三种形式:
(1)Object a;
Object b(a);//等同于:Object b=a;
(2) 动态创建:Object *p=new Object(a);
(3)函数传值调用:void test(Object a);
会自动调用Object(const Object &other){this->a=other.a;}
系统有默认的,如没有必要,不要写。
Text(const text &other){
m_size=oher.m_size;
m_buff=new char[m_size];
strcopy(m_buf,other.m_buf);
}//拷贝其数据而不是拷贝其指针,用这种情况。
浅拷贝:m_buf=other.m_buf;
小结:只有在拷贝其数据的情况下,才需要深度拷贝。
friend成员:
访问类的任何成员,不受private,protected限制。
2.重载运算符
1)重载加减运算符。
Object operator +(Const Object &other){
return ?
}
2)重载[]运算符
char &operator[](int index){
return m_buff[index];
}
3)重载关系操作符(>=、==)
bool operator ==(cost Object & object){
}
bool operator ==(cost Object & object1,Const Object &obj2){
}
4重载类型转换符
operator Type(){
}
operator double(){
return double(num/den);
}
double(fla);
operator const char *(){
return m_buf;
}
Text t1("HelloWorld");
const char *txt=(const char *)t1;
printf("%s\n",txt);
5)重载输入输出操作符
格式:类类型 & operator <<(类型名 值)
logger & operator <<(int value){
printf("%d\n',value);
return *this;
}
返回引用(&)或左值,可以将其串起来。
logger lg;
lg<<1<<"Hello";
- 拷贝构造与重载运算符
- 重载赋值运算符与拷贝构造函数的区别
- C++拷贝构造函数与运算符重载
- 拷贝构造函数与赋值运算符重载的区别
- c++中拷贝构造函数与“=运算符重载”
- 拷贝构造函数与赋值运算符重载的区别
- 重载赋值运算符与拷贝构造函数的区别
- 重载赋值运算符与拷贝构造函数的区别
- 拷贝构造函数与赋值运算符重载的区别
- 拷贝构造函数与赋值运算符的重载函数
- 拷贝构造与赋值运算符重载(顺序)
- 拷贝构造函数,类的赋值运算符重载,深拷贝与浅拷贝
- c++拷贝构造函数、赋值运算符=重载、深拷贝与浅拷贝
- 拷贝构造&&赋值运算符重载
- 拷贝构造函数/重载赋值运算符
- C++ 运算符重载和拷贝构造
- 拷贝构造函数&构造函数&重载赋值运算符
- 拷贝构造函数&构造函数&重载赋值运算符
- BZOJ4562 [Haoi2016]食物链
- light oj 1031
- tomcat闪退,手动无法启动,针对tomcat6,7,8
- Thinking In Java 笔记
- Segmentation fault
- 拷贝构造与重载运算符
- 机器学习\数据挖掘学习日记 20160430
- javascript---学习笔记
- 使用asset catalog管理图片资源
- 图解cygwin下进行Linux 内核hack失败记
- java爬虫 京东商品页 简单案例
- PCA白化
- Threshold 对单通道数组应用的固定阈值操作
- pwnable.kr 之fd