C++中类的名字查找
程序员文章站
2022-07-15 12:50:39
...
1 类的成员函数定义代码的名字查找
C++中编译类代码时,首先编译类的所有声明,只有再编译类的成员函数的定义代码。也就是说,在类的成员函数的代码中,可以使用在其后声明的变量。
class MyClass{
int getValue() {
return i;
}
int i;
};
在以上代码中,类MyClass的成员函数getValue()虽然定义在成员变量i之前,但是也可以使用该变量。
2 类的成员函数声明代码的名字查找
在编译成员函数声明的代码时,名字查找是从声明代码处向上查找,即此时如果该函数的定义中使用了在其后定义的变量或类型,程序会报错。
class MyClass{
MYINT getValue();
typedef int MYINT;
int i;
};
此时,成员函数getValue()的返回值是MYINT,但是MYINT在其后才定义,此时程序会报错,报错信息为error C3646: “getValue”: 未知重写说明符。应将成员函数getValue()的声明放在MYINT定义之后。
上一篇: 文章标题
下一篇: C++声明和实现分离