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