簡體   English   中英

即使該類已聲明為友元類,數據成員也無法訪問

[英]data member is inaccessible even though the class has been declared as friend class

即使該類已聲明為友元類,數據成員也無法訪問。 錯誤:'total' 未在此范圍內聲明

#include <iostream>
#include <iomanip>
using namespace std;

class Produce
{
    private:
        float total;
    public:
        Produce()
        {
            total=0;
        }
        friend class Bill;
};
class Bill
{
    private:
        float grand_total;
    public:
    Bill()
    {
        grand_total=0;
    }
    Bill operator+=(const Produce &p)
    {
        return Bill(total+p.total);
    }
};

錯誤信息是正確的:當前作用域中沒有名稱total 代碼應該要么引用grand_total ,它是類Bill的成員,后者又定義了正在編寫的operator+= ,或者它應該引用p.total來訪問屬於類Produce成員的total

使A類成為B類的朋友並不意味着您可以從A隨機命名B非靜態成員,而無需命名B的實例以供使用。

您希望您的程序使用哪個Produce::total (可能是無限的)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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