這是參考GOOGLE搜尋找出的範例,所做的修改。
由於int的範圍為-2,147,483,648 to 2,147,483,647,因此buf字串長度設定為11。
flykof 發表在 痞客邦 留言(3) 人氣(2,193)
struct Date
{
int day;
int month;
};
Date today;
today.day=11;
Date * p=New Date;
(*p).day=11 等於 p->day=11;
透過指標存取成員這兩種方式都是一樣的效果。
flykof 發表在 痞客邦 留言(0) 人氣(655)
其次,在讀有關Linux的核心程式碼的時候,看到許多宣告成 static 的函數,為什麼要宣告成 static 的函數呢?這樣的宣告和一般沒有宣告成 static 的函數有什麼不同? flykof 發表在 痞客邦 留言(0) 人氣(8,816)

#include <iostream>
#include <string>
class CTest {
private:
string m_message; /* 設定字串變數 */
public:
string& ResultByRef(int a,int b) /* 設定回傳值為字串,參數為整數a、b */
{
this->m_message=""; /* 初始化m_message為空字元,this表示為此CTest class的意思 */
char szBuf[100]; /* 設定字元陣列 */
sprintf(szBuf,"a+b=%d",a+b); /* 將字串a+b=%d(=a+b=10) 寫入到szBuf */
this->m_message=szBuf;
return this->m_message; /* 回傳m_message字串 */
}
string ResultByValue(int a,int b) /* 設定回傳值為字串,參數為整數a、b */
{
string strTmp; /* 設定字串變數 */
char szBuf[100]; /* 設定字元陣列 */
sprintf(szBuf,"a+b=%d",a+b); /* 將字串a+b=%d(=a+b=10) 寫入到szBuf */
strTmp=szBuf; /* 將szBuf指定給strTmp */
return strTmp; /* 回傳strTmp字串 */
}
};
int main()
{
CTest test;
cout << test.ResultByRef(10,10) << endl; /* 列印出函數 test.ResultByRef(10,10)結果 */
cout << test.ResultByValue(10,10) << endl; /* 列印出函數 test.ResultByValue(10,10)結果 */
system("PAUSE"); /* 調用系統指令讓顯示結果的視窗停止,以避免跑完結果視窗直接結束 */
return 0;
}
flykof 發表在 痞客邦 留言(0) 人氣(3,897)