如果将类A定义在类C的内部,那么类A就是一个内部类(嵌套类)

代码示例:

class Person {
private:
	int m_age;
public:
	Person() {
		cout << "Person()" << endl;
	}
    
	// Car
	class Car {
		int m_price;
	public:
		Car() {
			cout << "Car()" << endl;
		}
	};

};

内部类的特点

class Person {
private:
	static int ms_legs;
	static void other() {

	}
	int m_age;
	void walk() {

	}

	// Car
	class Car {
		int m_price;
	public:
		Car() {
			cout << "Car()" << endl;
		}

       // 成员函数可以直接访问其外部类对象的所有成员(反过来则不行) 
		void run() {
			Person person;
			person.m_age = 10;
			person.walk();
            
          // 成员函数可以直接不带类名、对象名访问其外部类的static成员 
			ms_legs = 10;
			other();
		}
	};
public:
	Person() {
		cout << "Person()" << endl;

		Car car;
	}
};

在外界不能直接使用内部类,需要加上外部类

Person::Car car;

内部类声明和实现

1.拆分内部类的函数实现

class Point {
	class Math {
        // 内部类函数的声明
		void test();
	};
};

// 内部类函数的实现
void Point::Math::test() {

}

2.拆分内部类的实现

class Point {
    // 内部类声明
	class Math 
};

// 内部类实现
class Point::Math {
    void test(){

    }
}

3.拆分内部类的具体实现

class Point {
    // 内部类声明
	class Math 
};

// 内部类实现
class Point::Math {
    void test();
}
class Point::Math::test() {
    void test(){

    }
}