1. 程式人生 > >C++發哥筆記(1):class的分離式寫法

C++發哥筆記(1):class的分離式寫法

頭文件 clu cpp obj inline this ++ 大括號 如果

把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的分離式寫法