1.注意,友元函数不同于类的成员函数,在友元函数中不能直接访问类的成员,必须要借助对象。
void show(){ cout<<m_name<<"的年龄是 "<<m_age<<",成绩是 "<<m_score<<endl; }
成员函数在调用时会隐式地增加 this 指针,指向调用它的对象,从而使用该对象的成员;而 show() 是非成员函数,没有 this 指针,编译器不知道使用哪个对象的成员,要想明确这一点,就必须通过参数传递对象(可以直接传递对象,也可以传递对象指针或对象引用),并在访问成员时指明对象。
2.类的提前声明后不能直接创建该类的对象,因为编译器无法确定要分配多大空间,只有类正式声明后(确定数据成员后),才能创建该类的对象;但可以定义该类的指针变量或引用变量,