在寫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顯式引用...