您现在的位置是:主页 > news > 怎么做b2c网站/面点培训学校哪里有
怎么做b2c网站/面点培训学校哪里有
admin2025/5/1 18:30:16【news】
简介怎么做b2c网站,面点培训学校哪里有,公司黄页是官网吗,网推方案概念 1:程序中,某个类的私有属性 可以让类外 一些特殊函数或者类进行访问,这个就是友元技术 。 2: 有元的关键字是 : friend。 3:友元的三种实现: 全局函数做友元 类做友元 成员函数做友元 1:…
怎么做b2c网站,面点培训学校哪里有,公司黄页是官网吗,网推方案概念 1:程序中,某个类的私有属性 可以让类外 一些特殊函数或者类进行访问,这个就是友元技术 。 2: 有元的关键字是 : friend。 3:友元的三种实现: 全局函数做友元 类做友元 成员函数做友元 1:…
概念
1:程序中,某个类的私有属性 可以让类外 一些特殊函数或者类进行访问,这个就是友元技术 。
2: 有元的关键字是 : friend。
3:友元的三种实现:
全局函数做友元
类做友元
成员函数做友元
1:全局函数做友元
案例:在类中直接在全局函数的声明添加 friend 即可。同时,不需要为其指定访问权限,直接放进去即可。
#include<iostream>
#include<string>
using namespace std;
class Building {// 通过firend修饰,可以告诉编译器:goodGay是全局函数,可以访问 类 Building中的私有成员变量friend void goodGay(Building* building);
public:Building() {this->m_settingRoom = "客厅";this->m_bedRoom = "卧室";}string m_settingRoom; // 客厅
private:string m_bedRoom; // 卧室};void goodGay(Building* build) {cout << "访问:" << build->m_settingRoom << endl;cout << "访问:" << build->m_bedRoom << endl;
}int main() {Building b;goodGay(&b);return 0;
}
根据运行结果可知:
有元全局函数可以访问到 私有成员变量。
2:类做友元
案例:我们假设goodGay类有一个Building类的私有成员变量 building,而Building类存在一些 私有成员,如果我们想让 goodGay对象能够 访问 Building类的私有成员。那么我们就需要让 goodGay称为 Building类的 友元。
#include<iostream>
#include<string>
using namespace std;
class Building;
class goodGay {
public:goodGay();void visit();
private:Building* building;};class Building
{// 告诉编译器 googGay类 Building类的 友元类,可以访问 Building类中的私有内容。friend class goodGay;
public:Building(); // 提供默认构造函数string m_settingRoom; // 客厅
private:string m_bedRoom; //卧室};// 通过 Building:: 作用域也可以访问 这些成员变量
Building::Building() {this->m_bedRoom = "卧室";this->m_settingRoom = "客厅";
}// 构造函数:直接构造一个 Building对象
goodGay::goodGay() {building = new Building();
}void goodGay::visit() {cout << "访问:" << building->m_settingRoom << endl;// 因为 Building类声明 友元类 goodGay,所以可以访问 Building类中的私有成员属性 m_bedRoomcout << "访问: " << building->m_bedRoom << endl;
}int main() {goodGay gg;gg.visit();
}
运行结果可知:
goodGay是可以访问到 Building类中的私有成员变量。
3:成员函数做友元
案例:现在goodGay里面有两个成员函数 visit1 和 visit2 。如果我们只想让 visit1作为 Building的友元函数,------那么就可以将 visit1的声明直接 写到 Building类中。
#include<iostream>
#include<string>
using namespace std;class Building;
class goodGay {
public:goodGay();void visit1();void visit2();private:Building* building;
};class Building {// 告诉编译器 goodGay类中 visit1()成员函数是 Building类中的友元函数,可以访问其私有内容。friend void goodGay::visit1();public:Building();string m_SettingRoom;
private:string m_bedRoom;
};Building::Building() {this->m_bedRoom = "卧室";this->m_SettingRoom = "客厅";
}goodGay::goodGay() {building = new Building();
}void goodGay::visit1() {cout << "访问私有变量:" << building->m_bedRoom << endl;
}void goodGay::visit2() {cout << "访问公共变量:" << building->m_SettingRoom << endl;
}int main() {goodGay gg;gg.visit1();gg.visit2();return 0;
}
从运行结果可知:友元成员函数可以访问对象的私有成员变量。