理解复杂的函数定义

cro*_*wso 0 c++ definition

我有一个用c ++编写的复杂函数定义.这是我第一次遇到如此复杂的函数定义,而我无法理解它的含义.

这里是

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

}
Run Code Online (Sandbox Code Playgroud)

特别是我需要知道什么

operator =(const t_group&a)

意思 ?

Mik*_*one 5

这是细分:

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像常规=运算符一样链接赋值(例如).