C++风格_函数重载
2017-10-22 17:24
169 查看
定义:
编写一个参数类型为 const string& 的函数, 然后用另一个参数类型为 const char* 的函数重载它:
优点:
通过重载参数不同的同名函数, 令代码更加直观. 模板化代码需要重载, 同时为使用者带来便利.
缺点:
如果函数单单靠不同的参数类型而重载(acgtyrant 注:这意味着参数数量不变),读者就得十分熟悉 C++ 五花八门的匹配规则,以了解匹配过程具体到底如何。另外,当派生类只重载了某个函数的部分变体,继承语义容易令人困惑。
结论:
如果您打算重载一个函数, 可以试试改在函数名里加上参数信息。例如,用 AppendString() 和 AppendInt() 等, 而不是一口气重载多个 Append().
编写一个参数类型为 const string& 的函数, 然后用另一个参数类型为 const char* 的函数重载它:
class MyClass { public: void Analyze(const string &text); void Analyze(const char *text, size_t textlen); };
优点:
通过重载参数不同的同名函数, 令代码更加直观. 模板化代码需要重载, 同时为使用者带来便利.
缺点:
如果函数单单靠不同的参数类型而重载(acgtyrant 注:这意味着参数数量不变),读者就得十分熟悉 C++ 五花八门的匹配规则,以了解匹配过程具体到底如何。另外,当派生类只重载了某个函数的部分变体,继承语义容易令人困惑。
结论:
如果您打算重载一个函数, 可以试试改在函数名里加上参数信息。例如,用 AppendString() 和 AppendInt() 等, 而不是一口气重载多个 Append().
相关文章推荐
- C++的函数的重载
- C++中的虚函数,多态,覆盖隐藏重载
- C++ 函数重载和union联合使用的威力
- C++基础学习系列--2、递归思想,内置函数,函数重载,函数模板,带默认值函数
- C++ 学习之函数重载、基于const的重载
- C++的那些坑—函数的参数和重载
- C++的缺省参数与函数重载是正交特性吗?
- C++ VS C#(12):函数的重载,类成员的static修饰,属性
- [C++基础]重载、覆盖、多态与函数隐藏(4)
- C++成员函数的重载,继承,覆盖和隐藏
- [C++]函数重载
- 关于C++中操作符重载的疑问 :四个运算符=, ->, [], ()不可以重载为全局函数(友员函数)
- C++通过重载()运算符来仿造函数
- c++成员函数的重载、覆盖、隐藏区别
- C++ 类型转化(运算符重载函数)和基本运算符重载(自增自减)
- 读书笔记-Thinking in C++-第7章 函数重载和默认参数Function Overloading &Default Arguments
- 22、不一样的C++系列--函数调用操作符的重载
- [C++] 用Xcode来写C++程序[5] 函数的重载与模板
- c++成员函数的重载、覆盖、隐藏区别
- C++学习笔记--默认参数和函数重载不可以同时存在