電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
[C++][3]namespace

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念
上一篇主題 :: 下一篇主題  
發表人 內容
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2007-5-11, PM 4:00 星期五    文章主題: [C++][3]namespace 引言回覆

namespace的中文是名稱空間

做什麼用的?讓我們分區用的。

為什麼要分區?當程式越寫越大,寫過的程式越來越多,不可避免的,就會遇到同樣名字的物件。

就好像當人口越來越多時,同樣姓名的人就會出現,當兩個同樣名字的人出現在同一個場合時,為了區分他們,我們自然會用某些方式去區隔這兩個人,像是用暱稱或者是用他們的體型特徵…

而其中一種方式,就是用居住地來分,像是台中來的王小明跟台北來的王小明,這個台中、台北,就是分區了。

事實上我們已經看過namespace,就在上一篇([2]C++入門)裡面的std::cout,前面這個std就是名稱空間,std::cout就是代表了在std中的cout。

當你要宣告一個名稱空間時,只需要採用以下形式:
代碼:
namespace 名稱空間A
{
    某某函數();
}

這麼一來,當你要呼叫某某函數時,就要使用下面的語法:
代碼:
名稱空間A::某某函數();

或者是在使用到此函數之前,使用using指令,如下:
代碼:
using namespace 名稱空間A;
某某函數();

因此可知,當程式中用到一堆cout,而又不想每次都加上std::時,就應該在程式開頭處加上using namespace std;這段程式碼。以下是範例:
代碼:
#include <iostream>

using namespace std;

int main()
{
   cout << "只要加了using namespace std;" << endl;
   cout << "就不需要在cout及endl前面加上std::囉" << endl;

   system( "pause" );
 
   return 0;
}
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
coka
稍嫌羞澀的路人


註冊時間: 2008-03-23
文章: 4
來自: 日本
80.34 果凍幣

發表發表於: 2010-6-5, AM 3:19 星期六    文章主題: 引言回覆

if( cin.fail() )
{
cin.clear();
char ch1;
cin >> ch1;
cout << "錯誤型態的輸入!" << endl;
}
這段程式碼的意思就是,當cin發生錯誤時,將錯誤狀態清除,宣告一個字元型態變數,將出錯的那個字元讀出來(此字元沒有用處,只是為了清空cin的串流,還是得讀出來),然後輸出錯誤訊息。
---------------------------------------------------

我是初學者。
我看不太懂 變數ch1 的作用。為什麼要清空cin的串流。
什麼是串流。為什麼這樣做後、可以清空。
我不懂什麼是串流、和清空的意思、
這樣做之後清空哪裡了。

是getch()的作用嗎?
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2010-6-5, AM 10:09 星期六    文章主題: 引言回覆

為什麼你會回覆在這篇…?主題跟你的問題好像並沒有關係
請移至[C++疑難雜症]cin無限迴圈錯誤發問
謝謝
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
peterma09
偶而上來逛逛的過客


註冊時間: 2011-10-23
文章: 5
來自: TPE
37.65 果凍幣

發表發表於: 2011-10-23, PM 8:25 星期日    文章主題: ?? 引言回覆

ㄝ...這些東西應該要死背下來嗎??
_________________
哇靠!!
回頂端
檢視會員個人資料 發送私人訊息 雅虎訊息通
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2011-10-23, PM 8:51 星期日    文章主題: Re: ?? 引言回覆

peterma09 寫到:
ㄝ...這些東西應該要死背下來嗎??

不需要
但是背得越多,就越接近高手
背得越少,就越接近新手
唯有能夠隨時從腦海裡找出來的知識,才是真正屬於自己的知識
光是理解而不背,遇到一點小問題都必須要到處查的話,這知識就不牢靠
另外背有很多方式,不喜歡死背的話,可以想辦法活背
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
teshuva
稍嫌羞澀的路人


註冊時間: 2011-12-08
文章: 4

62.97 果凍幣

發表發表於: 2011-12-8, PM 8:49 星期四    文章主題: 引言回覆

coka 寫到:
if( cin.fail() )
{
cin.clear();
char ch1;
cin >> ch1;
cout << "錯誤型態的輸入!" << endl;
}
這段程式碼的意思就是,當cin發生錯誤時,將錯誤狀態清除,宣告一個字元型態變數,將出錯的那個字元讀出來(此字元沒有用處,只是為了清空cin的串流,還是得讀出來),然後輸出錯誤訊息。
---------------------------------------------------

我是初學者。
我看不太懂 變數ch1 的作用。為什麼要清空cin的串流。
什麼是串流。為什麼這樣做後、可以清空。
我不懂什麼是串流、和清空的意思、
這樣做之後清空哪裡了。

是getch()的作用嗎?


cin 指的是由外部輸入的資料,如果你把字拆開來的話,它的意思是 c語言的 in
也就是輸入的意思

而getch() 的作用和cin很相似,但是有一點不一樣的是 gech() 指的是 獲取(get) 字元(ch = character),如果你輸入的是 數字 (int) 的話,就會出現錯誤
而cin則是不論你輸入的是 字元 或是 數字 它都是照單全收

因此在用c++寫程式(包含資料庫)時,如果你不確定屬性時,你就用cin比較保險些
比如說:姓名欄屬性可以設定成 文字,就可以用 getch()

yag 大大 如果我有說錯的地方請指正
我很久沒有碰c++了…呵呵呵
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作