把class的成员函数的定义写在class之外,即class的大括号的外面。
例如,
/////////// main.cpp ////////////
class Object {
public: int x;
void Test(); // (1) 成员函数的声明
};
void Object::Test() //(2) 成员函数写在外边,加上类名限定
{ }
总结一下这种写法:
1:成员变量:还是写在类里面
2:成员函数:在类里保留其函数声明,而函数的定义写在类体之外。
3:写在外面的时候,要加上类名限定(Object::)
其中,::可以理解为是表示范围的符号
分开为头文件和源文件
按照一贯的原则:类型定义写在头文件里,函数实现写在源文件里。
/////////// Object.h ////////////
class Object {
public:
int x;
void Test();
};
/////////// Object.cpp ////////////
#include <stdio.h>
#include "Object.h"
void Object::Test() {
printf("x is %d \n", x); // 仍然可以省略this->
}
注意:
1.不一定要把所有函数定义都拿出来,可以只拿一部分出来。 如果写在类体里面,编译器按照inline的规则编译它 (inline在第8章定义) 类体之外,则是普通的函数
2. 在类体中,成员函数与成员变量的排列顺序是自由的。
时间: 2024-11-08 17:13:22