好友函数是指在类的外部定义的非成员函数,但可以访问类的私有成员。而brace-init-list是一种用于初始化对象的语法,使用花括号括起来的列表。
好友函数不允许使用brace-init-list的原因是,好友函数的定义不在类的作用域内,它无法直接访问类的成员变量和成员函数。因此,在好友函数中使用brace-init-list进行初始化是没有意义的,因为无法直接访问类的成员来进行初始化操作。
相反,静态函数是属于类的成员函数,可以直接访问类的静态成员变量和静态成员函数,因此可以使用brace-init-list进行初始化。静态函数在类的作用域内定义,可以直接访问类的成员,包括私有成员,因此可以使用brace-init-list来初始化对象。
总结起来,好友函数不允许使用brace-init-list是因为好友函数的定义不在类的作用域内,无法直接访问类的成员进行初始化操作;而静态函数可以直接访问类的成员,因此可以使用brace-init-list进行初始化。
领取专属 10元无门槛券
手把手带您无忧上云