C++:类类型引用运算符=用法
c++ : class type reference operator= usage
这是我的第一篇文章,请理解格式是否错误X(
因此,在我的类中,我需要使用 operator= 函数使类对象等于同一类的第二个对象。
class Car
{
private :
int a;
int b;
public :
void set(int x, int y)
{a = x;
b = y;
}
void output()
{cout << a << " " << b << endl;
}
Car & operator=(const Car & carB)
{set(int c, int d);
}
};
using namespace std;
int main()
{
Car car1(1, 2);
Car car2;
car2=car1;
car2.output();
return 0;
}
我知道 Car &operator=(const Car & carb( 函数允许我使 car2 等于 car 1。但是,我不太了解这里的函数类型。 为什么函数不无效?引用符号(两者(在此代码中做什么?
我正在学习第一门计算机语言的第二季度。请帮忙! 谢谢!:]
这称为assignment operator
,你不需要实现它,因为它默认存在。如果类中有指针,则可以实现自己的assignment operator
,copy constructor
执行深层复制而不是浅拷贝。
引用符号表示引用返回,它允许函数调用位于调用的左侧,并允许像A = B = C
这样的级联赋值。
最后一件事...您在assignment operator
中的代码是错误的。它应该是这样的:
set(carB.a, carB.b);
函数的类型不是 void C++因为它允许如下语句:
A = B = C;
执行此语句后,所有三个变量将具有相同的值。换句话说,
A = (B = C);
这要求B=C
返回与A
相同类型的东西。
至于参考符号("%"(的作用,请在教科书中查找。
相关文章:
- 为什么比较运算符如此快速
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 使用C++中的模板和运算符重载执行矩阵运算
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 这里的 = 运算符有什么用法?
- C++:类类型引用运算符=用法
- 在调用运算符重载时识别调用上下文/用法C++
- 逗号运算符与圆括号表达式的用法示例
- C++ + 运算符的这种用法叫什么?目的是什么
- 是具有复制和交换习惯用法的复制赋值运算符,建议进行自赋值检查
- 为什么内存泄漏只发生在赋值运算符重载的情况下,而不是在复制构造函数中,以及复制和交换习惯用法如何解决它
- C++前缀增量运算符返回左值这一事实的实际用法
- unordered_multimap用法和运算符覆盖
- ()运算符的这种特殊用法是什么意思
- 逗号运算符的正确用法是什么
- 运算符重载和到布尔的隐式转换与安全布尔习惯用法有关
- 在 C 语言中 &(AND) 运算符的用法是什么?
- 条件运算符的奇怪用法 (>?=)
- 这是逻辑"and"运算符的正确用法吗?
- c++中的运算符|=及其用法