|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 猪猪虾 于 2022-1-17 19:47 编辑
还是无法访问私有成员
- //全局函数做友元
- #include <stdio.h>
- #include<iostream>
- #include<cstring>
- #include<cstdio>
- using namespace std;
- class Building
- {
- friend void GoodGay::visit1();
- public:
- Building()
- {
- m_sittingRoom = "客厅";
- m_bedRoom = "卧室";
- }
- string m_sittingRoom;
- private:
- string m_bedRoom;
- };
- class GoodGay
- {
- public:
- Building* building;
- GoodGay()
- {
- building = new Building; //new什么就返回什么,创建了一个Building指针
- }
- void visit1() //让这个函数可以访问building的私有成员
- {
- cout << "visit1 is visting :" << building->m_sittingRoom << endl;
- cout << "visit1 is visting :" << building->m_bedRoom << endl;
- }
- void vist2()//让这个函数不可以访问building的私有成员
- {
- cout << "visit2 is visting :" << building->m_sittingRoom << endl;
- }
- };
- int main()
- {
- GoodGay gay;
- gay.visit1();
- gay.vist2();
- return 0;
- }
复制代码
你注意你的 第 12 行 代码,系统根本不知道 GoodGay 从哪里来,因为还没有声明,直到第 31 行才出现,不能先吃饭才煮饭啊大哥。
你的问题如同: - #include <iostream>
- using namespace std;
- int A(int a, int b){
- return B(a, b); // 系统根本不懂 B() 是什么
- }
- int B(int a, int b){ // 这里才开始声明定义 B()
- return a*b;
- }
- int main()
- {
- return 0;
- }
复制代码
|
|