类也可以定义在函数体内,这样的类被称为局部类local class
局部类只在定义它的局部域内可见。
局部类的成员函数必须被定义在类体中。
局部类中不能有静态成员
- # include <iostream>
- using namespace std;
- int fun()
- {
- class LocalClass
- {
- public:
- int num_;
- //局部类的实现只能在类中
- void Init(int num)
- {
- num_ = num;
- }
- void Display()
- {
- cout << "num = " << num_ << endl;
- }
- //static int a = 10; error,局部类不能定义静态成员
- //因为静态成员的初始化要在文件作用域内
- };
- //局部类只能在本函数中使用
- LocalClass lc;
- lc.Init(10);
- lc.Display();
- return 0;
- }
- int main(void)
- {
- fun();
- /* error 局部类只能在本函数中使用
- LocalClass lc;
- lc.Init(10);
- lc.Display();
- */
- return 0;
- }
运行结果: