0

C++ で記述された複雑な関数定義があります。こんなに複雑な関数定義に出くわしたのは初めてで、その意味を理解するのに苦労しています。

ここにあります

t_group& t_group::operator=(const t_group &a)
{

}

特に私は何を知る必要があります

operator=(const t_group &a)

平均 ?

4

1 に答える 1

5

内訳は次のとおりです。

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

于 2012-06-03T15:19:51.340 に答える