C++之双目/单目等运算符的重载
作者:网络转载 发布时间:[ 2014/5/21 10:30:21 ] 推荐标签:Net 单目运算符重载
6.只能定义为成员函数的运算符
(1)下标操作符[] (见代码xibiao.cpp)//
//支持下标运算符的重载
int operator[](int n)
{ return m_data[n];}
(2)函数操作符() (见代码funOperator.cpp)//
class Square
{public://支持()运算符重载
int operator()(int n)
{return n*n;}};
(3)间接操作符*,-> (见代码 jianjie.cpp)//智能指针类
//智能指针类
|
class PA
{private:A* m_pa;
public:PA(A* pa):m_pa(pa){}
~PA(void)
{delete m_pa;m_pa = NULL;}
//支持->运算符函数
A* operator->(void)
{return m_pa;}
//支持*运算符重载
A& operator*(void)
{ return *m_pa;}};
|
7.new / delete 运算符的重载
应用:
一般把构造函数调用之前的初始化工作放在new运算符的重载函数中
一般把析构函数调用之后的善后工作放在delete运算符的重载函数中
例子://new []运算符进行重载
|
static void* operator new[](size_t size)
{void* p = malloc(size);cout << "我自己的New[]:size = " << size << ",p = " << p << endl;return p;}
// delete[] 运算符重载
static void operator delete[](void* p)
{cout << "我自己的delete[]:p = " << p << endl;free(p);}
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。

sales@spasvo.com