C++类的作用域略奇葩,以下几个部分属于类的作用域
- 类的定义内部
- 类外定义的函数体内
- 类外定义的函数参数
也就是说,类外定义的函数返回值类型不在类的作用域里
测试类
class TestScope
{
public:
typedef int typeInClass;//定义类型别名
//类内定义函数
typeInClass funDefInClass(){
typeInClass a=10;
cout << "function defined in class" << endl;
return a;
}
//只声明不定义
typeInClass funDefOutsideClass();
};
//类外定义的函数
typeInClass TestScope::funDefOutsideClass(){
typeInClass a=20;
cout << "function defined outside class" << endl;
return a;
}
测试代码
TestScope test;
test.funDefInClass(); //ok
test.funDefOutsideClass(); //错误:typeInClass未定义