首页 > 代码库 > C++发哥笔记(1):class的分离式写法

C++发哥笔记(1):class的分离式写法

把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. 在类体中,成员函数与成员变量的排列顺序是自由的。

 

C++发哥笔记(1):class的分离式写法