1樓:
//client.h
#ifndef _client_
#define _client_
#include
#include
using namespace std;
class client
static void showclientnum();
private:
static string servername;
static int clientnum;
static void changeservername(string newname);
};#endif
//client.cpp
// 此處不能再次使用#ifndef.....#endif// 不然client.h中的內容會被丟棄。就像一樓說的那樣#include "client.h"
#include
#include
using namespace std;
string client::servername="my client";
int client::clientnum=0;
void client::changeservername(string newname)
void client::showclientnum()
2樓:匿名使用者
#include
#include
using namespace std;
#ifndef _client_ //條件包涵錯誤把標頭檔案的定義和方法寫到一起
#define _client_
class client
static void showclientnum();
private:
static string servername;
static int clientnum;
static void changeservername(string newname);
};string client::servername="my client";
int client::clientnum=0;
void client::changeservername(string newname)
void client::showclientnum()
#endif
3樓:為何逸雲
cpp檔案中#ifndef _client_這裡, 你在標頭檔案中定義了,所以你的兩個函式的實現就不包括了。
一般只在標頭檔案中#ifndef _client_這樣做,為了防止重複包含,但是cpp檔案會有誰去包含呢?所以cpp中不需要這樣做。
一般出現不能解析的外部命令,可以看到輸出中有函式名,就可以考慮是有函式有宣告而沒有定義。
C 編譯出現「無法解析的外部命令」錯誤提示
include using namespace std template class seqlist template seqlist seqlist int size template seqlist seqlist t value,int n template seqlist seqlist t...
c 程式設計時為什麼老是出現cout未定義
include using namespace std 加上這句cout輸出流類宣告和定義都在iostream之中 對於非標準c 而言是iostream.h 其名字位於std空間,對於某些編譯器,特別是針對windows平臺的開發工具,都要顯式宣告名稱空間。cout是輸出函式 std是名稱空間,st...
c 程式設計的軟體哪個好,C 程式設計的軟體哪個好?
microsoft visual c 2008 express edition這個是一個官方速成版,適合愛好者 初學者和學生。至於什麼wintc,turoboc之類的想都別想了,太老的編譯器了。而microsoft visual c 6.0也是九幾年的東西了,也很老了,況且對c 標準支援的也不是很好...