C++友元函数和成员函数能不能同名

来源:百度知道 编辑:UC知道 时间:2024/05/28 19:43:42
在同一个类中,类的友元函数和成员函数能不能同名啊?谢谢了
谢谢了~可是编译系统不是能根据实际情况调用不同的重载吗?
比如:
class MyClass
{
friend void setMember(MyClass &myObj,char mem1)
{
myObj.member1=mem1;
myObj.member2=mem1;
cout<<"member1="<<myObj.member1<<" member2="<<myObj.member2<<endl;
}
void setMember(char mem1, char mem2)
{
member1=mem1;
member2=mem2;
cout<<"member1="<<member1<<" member2="<<member2<<endl;
}
private:
char member1;
char member2;
};
void main()
{
MyClass theObj;
setMember(theObj,'5');
theObj.setMember('7','9');
}
以上程序为什么不能通过编译?

当然可以同名了,友元函数本身可以说是一个独立的函数,之所以是友元主要是为了可以访问private成员,成员函数是类的成员,两个的作用域不同。

不能,同名那就是重载了

这位大兄弟太大意了,
public都没有加上去,setMember()被认为是private成员了,当然编译不过了。
杀个微不足道的小人物也不能放松警惕啊~