簡體   English   中英

朋友功能C ++

[英]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;
}

四個問題:

  1. 您已經在構造函數中定義了friend函數。 將其移到外面,使其具有自己的功能。

  2. std:ostream替換為std::ostream

  3. 交換參數的順序。

  4. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM