在作业中,我被要求从结构中取一个成员函数并使其成为该结构的非成员,但我不知道这意味着什么,并且似乎无法得到一个答案。我当然不希望它为我完成,所以有没有人可以解释他们对我的要求,所以我可以把剩下的都搞清楚了?
答案 0 :(得分:3)
非成员函数f
,其接受名为T&
的{{1}}类型的参数,例如t
与成员函数void f(T& t)
非常相似,只是void T::f()
被*this
取代。最大的区别在于它无法访问该类型的t
成员,但默认情况下这是优势,因为它增强了封装
(当然,除非碰巧是private
。从封装的角度来看,非成员friend
函数与成员函数非常相似,而非非成员函数非friend
函数。)