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の名前であるため、のメンバーです。structunionclasst_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、通常の=演算子と同じように代入 (例: ) を連鎖できるようにするためです。