类声明问题
Class Declaration Questions
从代码片段中:
CClassA& CClassA::operator =(const CClassA& rhs)
{
return;
}
我有以下问题:
- 它是类成员吗?
-
&
是什么意思? -
rhs
是什么意思?(我只知道它的意思是"右手边") -
const
是什么意思?
-
这是一个"成员函数"。它实际上是一个重载赋值操作符,它定义了在将
CClassA
的一个实例赋值给另一个CClassA
实例时应该做什么。例如CClassA foo;CClassA酒吧;Foo = bar;//这将调用重载赋值操作符
-
本例中的
&
表示"参考"。也就是说,该函数返回一个CClassA
引用,并接受一个const CClassA
引用作为参数。这与按值传递相反,按值传递将向函数发送CClassA
实例的副本。引用只是传递实例的地址,以避免复制实例的开销。 -
是的,"rhs"表示右手边。在我的例子
foo = bar;
中,你实际上说的是foo.operator=(bar);
。 -
const
在本例中表示常量引用。这意味着rhs
将不会在函数内部被更改。
正如@Seth Carnegie所评论的,这段代码无法编译。您应该返回一个CClassA&
,但是您什么也没有返回。
1)这是一个类成员。您正在尝试重载操作符=。点击这个链接它在这个话题上得到了更多的帮助
2),表示您正在传递引用
3) RHS表示右手边
4) const在这里指的是常量的正常语义,也就是说,你不想改变RHS侧
最重要的是你什么时候会拥有CClass a、b;然后a=b;那么这就等于a.operator = b
相关文章:
- Visual Studio中的函数声明和函数定义问题
- 如何在标头中声明(或定义)函数的问题
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 我在范围内未声明的错误类有问题
- 使用静态成员声明类时遇到问题
- 为<vtkDataArray> VTK 非结构化网格声明 vtkSmartPointer 类型的变量时出现问题
- GLUT 问题:重新声明 c++ 内置类型'wchar_t'时出错
- 如何解决这个正向类声明问题
- public:静态常量字符串声明/初始化问题
- C++ Windows.h 的问题,在 vs17 中非法声明匿名'struct'
- 如何将char数组声明为函数参数?或告诉我此代码中还有其他问题?
- 使用 C++17 扩展使用声明时出现问题
- 我在C++程序中声明变量时遇到问题
- 我在 c++ 中声明字符串类型时遇到问题
- 在函数本身而不是在主函数中声明由参数限定的变量有什么问题?
- 单独的类声明和方法定义文件问题
- 类中成员函数声明的问题
- C++ 03 类模板 这是转换构造函数还是转换运算符?以及如何声明解决此问题的方法
- 特征张量的问题:声明矛盾
- C++问题:声明冲突