1、常量数据成员的初始化只能通过构造函数的成员初始化列表进行,并且要用关键字const修饰
#include <iostream>
using namespace std;
class MyClass {
int _i;
friend void Increment(MyClass& f);
public:
const int NUM;
// ERROR ********found********
MyClass(int i = 0):NUM{0}{
_i = i;
}
int GetValue() const { return _i; }
};
2.友元函数的定义要与函数的声明相呼应,即返回值、参数类型、参数个数要一致。友元函数的调用不需要使用类名和作用域
void Increment(MyClass& f) { f._i++; }
3.友元函数的调用不需要类名和作用域
Increment(obj);