1. 四种运算符重载:
(1)前缀++写法,++n有效
CInt operator++() {
return m_int++;
}
(2)后缀++写法,n++有效
CInt operator++(int) {
return m_int++;
}
(3)new重载
//new是一种运算符
void* operator new(size_t cb)
{
return new char[cb];
}
(4)转换运算符
使用不多,但是一个小的知识点
#includeclass CInt { public: CInt(int n) { m_int = n; } //前缀++写法,++n有效 CInt operator++() { return m_int++; } //后缀++写法,n++有效 CInt operator++(int) { return m_int++; } //new是一种运算符 void* operator new(size_t cb) { return new char[cb]; } //转换运算符,运算符重载优先级更高于转换运算符 operator int() { return m_int; } private: int m_int; }; int main(int argc,char* argv[]) { CInt objN(1); objN = objN + 1;//当+重载时,+没有定义,系统默认匹配到转换运算符位置进行转换 //objN++; //CInt* p=new CInt(123); // //return 0; }
2.学习视频地址:转换运算符



