[英]Friend function C++
為什么不起作用?
我在代碼中使用了友好函數,但是出現錯誤,所以找不到。 請幫忙。
#include<iostream>
#include<cstdlib>
using namespace std;
class Circle{
private:
int x;
public:
Circle(int x1=5){
x=x1;
friend std:ostream & operator<<(const Circle & c, std::ostream & os)
{
return os<<c.x
}
}
};
int main()
{
Circle s;
cout<< s;
system("pause");
return 0;
}
四個問題:
您已經在構造函數中定義了friend函數。 將其移到外面,使其具有自己的功能。
將std:ostream
替換為std::ostream
交換參數的順序。
return os<<cx
后添加分號
最后結果:
class Circle{
private:
int x;
public:
Circle(int x1=5){
x=x1;
}
friend std::ostream & operator<<(std::ostream & os, const Circle & c)
{
return os<<c.x;
}
};
friend std:ostream & operator<<(const Circle & c, std::ostream & os)
{
return os<<c.x
}
您應該在構造函數外部聲明此函數。
朋友函數需要在與構造函數相同的級別上聲明,而不是在內部聲明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.