TV a; 在定义a的同时,因为TV中间i的定义,相当于同时定义了a.i这个变量。因为它是私有的,所以不能直接访问;友元类不受这个限制。但要访问的话,至少得先有这样一个实例: 比如在Tele里面加上这个函数: class Tele { public: int func2(const TV &a) { cout<<a.i<<endl; return a.i; } ... friend class TV; }; 然后定义了变量: TV a; Tele b; 就可以 b.func2(a); 来访问a.i这个变量了。 总结地来说,类定义的是数据的结构,而非真正的变量,只是一个逻辑上的概念;而定义类的变量(一般叫做实例),这个过程中才真正分配了内存空间,定义出了实在可访问的数据。
C++ 友元函数 类和实例
最新推荐文章于 2024-08-13 00:15:00 发布