C++成员函数重载教程

重载运算符写成类的成员函数,好处挺的——调用更自然、封装性也好,逻辑清晰不少。像重载operator+,你直接在类里写就行,语法上是A operator+(A &)这样,写起来也不绕,改起来更方便。

关键字operator后面直接跟上运算符,比如+[]()都可以,函数名就是它们俩加起来的形式,逻辑结构清晰,维护的时候不容易出错。嗯,挺适合对封装要求比较高的场景。

举个常见的例子,重载operator()之后,类的对象就能像函数那样被调用了,蛮灵活的。你要写个仿函数用在STL算法里,这招就实用。

不过有些操作,比如双目运算符涉及到两个操作数时,用友元函数更合适。为啥?因为成员函数只能访问左操作数是类对象的情况,右边的就不太好控制了。

你如果对成员函数和友元函数的区别还不太清楚,可以看看C++运算符重载:成员函数 vs 友元函数这篇文章,讲得还挺细。

还有几篇延伸阅读也可以顺带看看:像C++成员函数重载C++ 友元函数重载运算符示例,都蛮适合巩固理解。

如果你常用STL或自己写些轻量框架,建议优先考虑成员函数的写法,封装好、代码还清爽。

ppt 文件大小:8.81MB