class fraction
{
long num;
long den;
public:
fraction(long,long);
fraction();
~fraction();
fraction( const fraction & );
void setNum(long);
void setDen(long);
friend void print(const fraction&);
};
void print(const fraction& s)
{
cout<<s.num<<" "<<s.den<<endl;
}
,可以称为
fraction f1(5,1);
print(f1);
是否可以通过某种方式进行修改,以便我们可以将其称为f1.print()
?
答案 0 :(得分:2)
没有。只能使用member-access语法访问成员。
答案 1 :(得分:0)
可以以某种方式修改吗?
// forward declare fraction
class fraction;
// declare funtion in global scope
void print(const fraction&);
class fraction
{
public:
/* ... */
// declare function as friend
friend void print(const fraction&);
// add member function
void print() const { ::print(*this); }
};
void print(const fraction& s)
{
cout<< s.num << " " << s.den << endl;
}
int main()
{
fraction f1(5,1);
f1.print();
}
答案 2 :(得分:0)
这个词&#34;朋友&#34;意味着所提到的功能或类别是一个朋友&#34;你的班级,并给#34;朋友&#34;允许访问受保护或私人成员,就像他们是公开的一样。 &#34;朋友&#34;的唯一影响在朋友函数或朋友类中的代码上。除此之外,&#34;朋友&#34;什么也没做。它并没有改变“朋友”的方式。函数被调用或使用。
答案 3 :(得分:0)
朋友不是您班级的成员函数,不能像您的成员函数一样调用,朋友函数只表示此函数可以访问您班级的所有成员。