C++ で記述された複雑な関数定義があります。こんなに複雑な関数定義に出くわしたのは初めてで、その意味を理解するのに苦労しています。
ここにあります
t_group& t_group::operator=(const t_group &a)
{
}
特に私は何を知る必要があります
operator=(const t_group &a)
平均 ?
C++ で記述された複雑な関数定義があります。こんなに複雑な関数定義に出くわしたのは初めてで、その意味を理解するのに苦労しています。
ここにあります
t_group& t_group::operator=(const t_group &a)
{
}
特に私は何を知る必要があります
operator=(const t_group &a)
平均 ?
内訳は次のとおりです。
t_group&
この関数は への参照を返しますt_group
。
t_group::
関数はt_group
名前空間にあります。は、、またはt_group
の名前であるため、のメンバーです。struct
union
class
t_group
operator=
関数は演算子のオーバーロードです。メソッドなので、オブジェクトは演算子=
の左側です。=
(const t_group &a)
=
これは関数のパラメーターです。演算子の右側です。これは、右側が aへのconst
参照であることを示しています。t_group
これは、関数が を変更しないことを意味しますt_group
。
まとめると、これがクラスのコピー代入操作です。t_group
次のようなコードによって呼び出されます。
t_group a, b;
b = a;
後者の行は と同等b.operator=(a);
です。
PS 代入演算子関数は通常、 で終わりreturn *this;
ます。これはa = b = c
、通常の=
演算子と同じように代入 (例: ) を連鎖できるようにするためです。