转载自 这里
知识点
5.1前向声明
- 在C++里面可以声明一个类而不定义它。这个声明被称为前向声明(forward declaration)。
- 在声明之后,定义之前,这个类是一个不完全类型(incompete type),即已知它是一个类型,但不知道包含哪些成员,具有哪些操作。
- 不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数。当一个类的成员变量是引用时,需要在初始化列表中初始化引用,与成员变量时指针时不同。
- 见1.2友元成员函数中Line的私有变量和Line后续的构造函数
友元是C++提供的一种破坏数据隐蔽和封装的机制
1.友元函数
友元函数是在类中使用关键字friend修饰的非成员函数
1.1友元普通函数
定义与概念
- 友元函数是一个普通的函数
- 友元普通函数在实现时,不需要类名的限定;在调用时,也不需要由实例来调用
示例代码
#include <iostream>
#include <cmath>
using namespace std;
class Point{
public:
Point(int x = 0,int y = 0):x(x),y(y){}
int getX(){ return x;}//内联函数
int getY(){ return y;}
void s

本文详细介绍了C++中的友元机制,包括友元函数和友元类的概念、使用示例及其特性。同时讲解了前向声明,允许在未定义类的情况下声明其存在,但限制了对不完全类型的使用。友元机制破坏了数据隐蔽和封装,应当谨慎使用。
1712

被折叠的 条评论
为什么被折叠?



