Base_friend Derived friend点特殊看作比普通关系比friend关系差 Derived父类继承私保护员Base_friend访问自及类私员能Base_friend访问即继承改变友元访问范围——友元关系继承父类员受影响看面例 class B { friend class F; private: int private_base; protected: int protected_base; }; ...
Friend class可以访问别的class中的private和protected成员,只要在这个类中声明了friend。 通常可以使部分类访问其他类中的一些私有成员,例如在链表中,链表class作为节点class的friend,可以访问其私有成员。 classNode{private:intkey;Node*next;// 现在 class LinkedList 可以访问Node的私有成员了friendclassLinkedList;}; ...
class HardDisk{public: HardDisk(); friend class Computer;private: int capacity; int speed; string brand;}; HardDisk::HardDisk():capacity(128),speed(0),brand("三星"){}class Computer{public: Computer(HardDisk hd); void start();private: ...
33、operator:用于操作符重载函数 34、private:属于私有类的数据只能被它的内部成员访问,除了friend使用,也能用来继承一个私有的基类,所有的公共和保护成员的基类可以变成私有派生类 35、protected:保护数据对于它们自己的类是私有的并且能被派生类继承,也能用于指定派生,所有的公共和保护成员基类可以变成保护的派生类 3...
};classBuilding{//类做友元friendclassGoodFriend;public:Building(); string m_SittingRoom;private: string m_BedRoom; };//类外写成员函数Building::Building() { m_SittingRoom ="客厅"; m_BedRoom ="卧室"; } GoodFriend::GoodFriend() {//创建建筑物对象building =newBuilding; ...
friend说明符,可以在类和函数声明中使用。 constexpr说明符,只允许在变量定义,函数及函数模板声明,以及具有字面类型的静态数据成员的声明中使用。 (C++11 起) consteval说明符,只允许在函数和函数模板声明中使用。 constinit说明符,只允许在拥有静态或线程存储期的变量声明中使用。constexpr、consteval和constinit说明符在...
classF{};intf();intmain(){externintg();classLocal// main() 函数中的局部类{friendintf();// 错误,main() 中没有声明该函数friendintg();// OK,main() 中有 g 的声明friendclassF;// 令局部 F(随后定义)为友元friendclass::F;// 令全局 F 为友元};classF{};// 局部 F} ...
friend class TO; //将类TO声明为其友元类 }; class TO { public: double junzhi(JX &jx); double ji(JX &jx); }; 定义类TO的成员函数。 double TO::ji(JX &jx) {return jx.a * jx.b ; } double TO::junzhi(JX &jx) {return (jx.a + jx.b)/2; } 按要求实例化JX类的一个对象,利用...
friend class Teacher; private: int j; char *name; protected: int k; }; class Teacher { public: void call(Student *student) { //能够使用student中私有的name属性 cout << "call:" << student->name << endl; } }; 静态成员 和Java一样,可以使用static来声明类成员为静态的 当我们使用静态成员...
// 我们刚才用到的函数classtest{private:char* str;intlen; public: test(constchar* s); ~test(); friendstd::ostream& operator <<(std::ostream& os,consttest& one); }voidcallme(test& rsb);// 创建的对象testt1("I'm t1"); testt2("I'm t2"); ...