//多檔案結構, 三部分
//標頭檔案 預編譯
實現客戶機(client)類:
·宣告字元型靜態資料成員servername,儲存其伺服器名稱
·整型靜態資料成員clientnum,記錄已定義的客戶數量
·定義靜態函式changservername()改變伺服器名稱.
在標頭檔案client.h中宣告
類,在檔案client.cpp中實現,
在檔案test.cpp中測試這個類,
觀察相應的成員變數取值的變化情況.
宣告部分
//根據要求標頭檔案只給出類的宣告即可,也沒有主函式
#include "stdafx.h"
#include
using namespace std;
#ifndef client_h_
//↑十分重要:為了避免重複包含標頭檔案,常用這種形式編譯預處理
#define client_h_
//建構函式呢?
//可能是只是宣告的緣故吧
class client ;
#endif // !client_h_,配合"ifndef"進行預處理
實現部分
#include "stdafx.h"
//包含定義
#include "client.h"
//都是靜態資料成員,引用時注意"類名::"來修飾
void client::changeservename(char name)
int client::getclientnum()
//一些其他的注意事項:
//靜態資料成員必須在類外初始化.
//一般形式:資料型別類名::靜態資料成員名=初值
//不要試圖在標頭檔案中定義(初始化)靜態資料成員。在大多數的情況下,這樣做會引起重複定義這樣的錯誤。即使加上#ifndef #define #endif或者#pragma once也不行。
測試部分
#include "stdafx.h"
#include
#include "client.h"
using namespace std;
//單獨初始化!
int client::clientnum = 0;
char client::servername = 'a';
int main()
最後配合
資料共享與保護
作用域 是識別符號的有效範圍 可見性 識別符號是否可以引用的問題 程式執行到某一點。能夠引用到的識別符號,就是該處可見的識別符號。函式原型的作用域 函式原型中的引數,其作用域始於 結束於 例如,設有下列原型宣告 double area double radius radius 的作用域僅在於此,不能...
資料的共享與保護
1.生存期 1 靜態生存期 定義 若物件的生存期與程式的執行期相同,則稱它具有靜態生存期 方式 使用關鍵字static 在命名空間作用域宣告的物件都具有靜態生存期 2 動態生存期 區域性生存期物件誕生於宣告點,結束於宣告所在的塊執行完畢之時。例 變數的生存期與可見性 include using na...
C C 資料的共享與保護
當程式中遇到常量時 如果程式複雜,用到的常量比較多的化,不能很簡單的看出某個常量時用來做什麼的。在實際中應該盡量避免產生這種magic number,可以使用c語言提供的預定義功能 define pi 3.14 auto f double radius 預定義有自己的侷限 比如不能進行型別檢查 更好...