重载函数的不同方式
Different ways of overloading functions?
谁能确认一下我对超载的理解是否正确?
-
const/non-const
可变/non-mutable 参数类型(明显)
参数个数(明显)
不返回类型
EDIT:函数(不包括参数类型)是否易失性/非易失性
我也有点困惑是否int, int*, &Int and &&Int可以用来重载同名函数吗?
void X(int);
void X(int*);
void X(int&);
void X(int&&);
是同一函数的四个不同的重载版本?
形参类型和形参数量——这是区分重载函数的唯一方法。这涵盖了与参数相关的所有内容,包括int/int &/int &&
的区别,因为它们是形式上不同的参数类型。
您的const/non-const
区别(不要忘记volatile
)可以被认为是参数类型的一部分,即使它应用于类方法,因为在这种情况下,它确实限定了隐式this
参数。这取决于您,是将其视为基于参数的重载,还是将其视为单独的重载。
我不知道你说的可变/不可变是什么意思。
还必须指出,语言规范有一组规则定义了等效参数声明的概念,这意味着对于重载的目的,不同的(按类型)参数声明可能仍然被认为是等效的。
相关文章:
- 如何在c++中为模板函数实例创建快捷方式
- 在C++中将函数压缩为两种方式
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 如何编写具有相同名称的相同函数,该函数在C++中几乎以相似的方式处理不同的类参数?
- 是否可以使用非常量指针调用非常量函数,以及当两个unique_ptrs指向同一个对象时程序的行为方式?
- 请描述一下在 c++ 中在此类中定义构造函数的方式?
- 我们如何并行运行算法的 n 个实例并以有效的方式计算结果函数的平均值?
- 用于基于成员字段或函数创建比较器的快捷方式
- 用初始化列表和超类构造函数声明子类构造函数的正确方式
- 将uint8_t*buffer和size_tbufferlen从C++传递到C中的API函数的最佳方式是什么
- 我是否以错误的方式声明了getpriorityvalues函数
- 如何编写一个递归函数,以随机的方式混淆从0到6的数字
- 以支持继承的方式将自身shared_ptr添加到对象构造函数中的向量中
- 以编程方式在 C++ 中创建函数
- 将函数作为参数传递的两种方式之间的区别
- 程序按执行方式工作,直到我向其添加析构函数为止
- 在 C++ 中使用删除函数的不同方式
- 简单的计数和求和函数没有按照我预期的方式工作
- C++17 中函数参数的指针对齐方式
- 查找函数在unordered_map中的工作方式是搜索键值