C++成员函数重载教程
重载运算符写成类的成员函数,好处挺的——调用更自然、封装性也好,逻辑清晰不少。像重载operator+
,你直接在类里写就行,语法上是A operator+(A &)
这样,写起来也不绕,改起来更方便。
关键字operator
后面直接跟上运算符,比如+
、[]
、()
都可以,函数名就是它们俩加起来的形式,逻辑结构清晰,维护的时候不容易出错。嗯,挺适合对封装要求比较高的场景。
举个常见的例子,重载operator()
之后,类的对象就能像函数那样被调用了,蛮灵活的。你要写个仿函数用在STL
算法里,这招就实用。
不过有些操作,比如双目运算符涉及到两个操作数时,用友元函数更合适。为啥?因为成员函数只能访问左操作数是类对象的情况,右边的就不太好控制了。
你如果对成员函数和友元函数的区别还不太清楚,可以看看C++运算符重载:成员函数 vs 友元函数这篇文章,讲得还挺细。
还有几篇延伸阅读也可以顺带看看:像C++成员函数重载和C++ 友元函数重载运算符示例,都蛮适合巩固理解。
如果你常用STL
或自己写些轻量框架,建议优先考虑成员函数的写法,封装好、代码还清爽。
8.81MB
文件大小:
评论区