我有一个用c ++编写的复杂函数定义。这是我第一次遇到如此复杂的函数定义,而我无法理解它的含义。
这是
t_group& t_group::operator=(const t_group &a)
{
}
特别是我需要知道什么
operator =(const t_group& a)
是什么意思?
答案 0 :(得分:5)
以下是细分:
t_group&
该函数返回对t_group
的引用。
t_group::
该函数位于t_group
命名空间中。由于t_group
是struct
,union
或class
的名称,因此它是t_group
的成员。
operator=
该函数是=
运算符的重载。由于它是一种方法,因此该对象是=
运算符的左侧。
(const t_group &a)
这是函数的参数:它是=
运算符的右侧。这表示右侧是对const
的{{1}}引用,这意味着该函数不会改变t_group
。
总之,这是t_group
类的副本分配操作。它由以下代码调用:
t_group
后一行相当于t_group a, b;
b = a;
。
P.S。赋值运算符函数通常以b.operator=(a);
结尾。这样您就可以像常规return *this;
运算符一样链接分配(例如a = b = c
)。