[英]Friend Function can't access private member of private member
#include <iostream>
using namespace std;
class A {
friend void print(B&);
int number;
};
class B {
friend void print(B&);
A object;
};
void print(B& C) {
cout << C.object.number;
};
此代碼無法編譯。 它給我 E0265 錯誤(成員 A::number 不可訪問)
問題是 class B 沒有被聲明。 前向聲明修復了編譯錯誤。
#include<iostream>
using namespace std;
class B;
class A {
friend void print(B&);
int number;
};
class B {
friend void print(B&);
A object;
};
void print(B& C) {
cout << C.object.number;
};
int main(){
return 0;
}
這是一個前向聲明問題。 Class A 有一個打印 function 引用了一個 class B 實例,但是 class B 還沒有被定義。 所以編譯器不理解並報錯。
嘗試這個:
#include <iostream>
using namespace std;
class B;
class A {
friend void print(B&);
int number;
};
class B {
friend void print(B&);
A object;
};
void print(B& C) {
cout << C.object.number;
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.