C++运算符指针,乘法
C++ operator pointer, multiply
我想知道乘法运算(*)是否在指针中重载,反之亦然?
还是操作员是个人?
C++
它们是单独的运算符,重载哪一个取决于传递给运算符的参数。
struct A
{
//dereference operator
A /*or whatever*/ operator *() { /*...*/ };
//multiply operator
A operator *(const A&) { /*...*/ };
};
//...
A a;
*a; //calls dereference operator
a * a; //calls multiply operator
它的工作方式与所有可以定义一元或二元运算符(+
,-
和&
是其他运算符),它取决于函数将采用的参数数量。 因此,一个一元*
应定义为将单个运算符定义为非静态类成员不带任何参数(this
除外),或作为采用单个参数的自由函数。 二元运算符应为定义为接受两个参数,或者作为非静态类成员取一个参数(除了this
),或者取一个自由函数两个论点。
请注意,函数的名称被视为相同,因此二进制版本可以隐藏一元版本,反之亦然。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么使用 "this" 指针调用派生成员函数?
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用指针从C++中的数组中获取最大值
- 使用std::vector的OpenCL矩阵乘法
- 助记符和指向成员语法的指针
- 嵌入方指针压缩已禁用
- 数组的指针从不分段故障
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 何时在引用或唯一指针上使用移动语义
- QMetaObject invokeMethod的基于函数指针的语法
- 更改一个指针后更改乘法对象
- 矩阵乘法中的指针不起作用
- C++矩阵乘法返回数组的前2行和最后2行的指针
- C++运算符指针,乘法
- 为什么我的乘法被当作一个指针
- C++指针到指针到指针的乘法不起作用
- 将乘法类的指针传递给成员函数
- 或c++: VS2010乘法运算符被误认为空指针