//建構子的種類
#include
<iostream.h>
#include
<string.h>
class
String //開始宣告類別
{
private: //宣告屬性
char *
test;
long len;
public: //宣告成員函數原型
String(); //預設建構子
String(const char * i_string); //建構子
String(String & copystring); //複製建構子
void
show_string();
};void String::show_string() //顯示字串內容
{
cout << "string : " << test << " length : " <<
len << endl;
}
String::String() //預設建構子
{ cout << "這是預設建構子 !\n"; }
String::String(const char * i_string) : len
(strlen(i_string)) //一般建構子
{
cout << "這是標準建構子 !\n";
test = new char [len + 1]; //配置記憶體
strcpy(test,i_string); //複製字串
}
String::String(String & copystring) : len
(copystring.len) //複製建構子
{
cout << "這是複製建構子 !\n";
test = new char [len + 1];
strcpy(test,copystring.test);
}
void
main() //主程式開始
{
String testString("My string"); //宣告字串物件,呼叫一般建構子
String copyString(testString); //呼叫複製建構子
String C_String; //呼叫預設建構子
cout << "-----------------------\n";
cout << "testString : \n";
testString.show_string();//呼叫testStirng的成員函數show_string,顯示字串內容
cout << "copyString : \n";
copyString.show_string();//呼叫copyStirng的成員函數show_string,顯示字串內容
} //主程式結束 |