C++發哥筆記(1):class的分離式寫法
阿新 • • 發佈:2017-05-09
頭文件 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的分離式寫法