C 中的名空間

2021-08-26 12:29:40 字數 2079 閱讀 4975

在寫c++程式時一般都會有一句using namespace std;這裡的std其實就是引入了乙個名空間,其中cout和string函式就包含在此名空間中,如果在寫程式時沒使用std名空間,但又使用了cout、string等函式,那麼將會出現以下錯誤:

名空間的引用方法最常見的就是通過關鍵語句using namespace加要引入的名空間,名空間也是乙個類,也擁有其他的引入方法,例如下面通過程式模擬處理器處理訊號的例子(通過「::」引入):

#ifndef signal_h_included

#define signal_h_included

#include

#include

#include

class signal

signal(const

int sumdata)

int number() const

double value(const

int index) const

void attach(const

double value)

std::string text()const

};#endif // signal_h_included

signal.h檔案
#ifndef processor_h_included

#define processor_h_included

#include "signal.h" //將訊號檔案引入

class

processor

};#endif // processor_h_included

processor.h檔案
另一種方法就是直接定義名空間(namespace),例如:

#ifndef signal_h_included

#define signal_h_included

#include

#include

#include

namespace signalprocess包含著的就是該名空間中的內容

class signal

signal(const

int sumdata)

int number() const

double value(const

int index) const

void attach(const

double value)

std::string text()const

};}#endif // signal_h_included

signal.h檔案
#ifndef processor_h_included

#define processor_h_included

#include "signal.h" //將訊號檔案引入

namespace

signalprocess

};}#endif // processor_h_included

processor.h檔案
#include

"processor.h"

#include

int main()

main.cpp檔案
也可以通過using直接使用名空間signalprocess。

#include "processor.h"

#include

using

namespace signalprocess; //通過using直接飲用自定義的名空間

int main()

以上幾種輸出結果均相同:

C 命名空間與類名的衝突

今晚寫乙個聊天客戶端的程式,花了很長時間設計介面,然後在我定義p2pclient類的時候用到了類tcpclient,這是乙個有關收發資料的類,但是我定義專案名的時候用了tcpclient,這樣在我使用類tcpclient時,vs就總是提示錯誤,後來在給專案重新命名tcpclient,還修改專案屬性中...

c 中regex的命名空間 c 命名空間

system.transactions 命名空間 注意 此命名空間在 net framework 2.0 版中是新增的。使用 system.transactions 命名空間包含的類可以編寫自己的事務應用程式和資源管理器。具體地說,可以建立和參與 與乙個或多個參與者 本地或分布式事務。system....

C 中的命名空間

在c 語言中,命名空間是一種實體,使用namespace來宣告,並使用來界定命名空間的作用域。例 namespace foo 命名空間對應於命名空間作用域。和c語言的檔案作用域相容,c 具有全域性命名空間作用域,對應的命名空間是全域性命名空間,不需要宣告。用字首為 的qualified id顯式引用...