#include
class Integer {
public:
Integer() {j_=0; cout<<"10\n";}
Integer(int k) {j_=k; cout<<"20\n";}
~Integer() {cout<<"30\n"}
int rvalue () {return j_;}
int& lvalue {return _j;}
private:
int j_;
};
void main()
{
cout<<"Label 1\n";
Integer k;
cout<<"Label 2\n";
Integer *p=new Integer(5);
cout<<"Label 3\n";
cout<
k.lvalue()=8;
cout<
}
C++輸出如下:
Label 1
10
Label 2
20
Label 3
5
Label 4
8
Label 5
30
2007-02-07 10:11:04 · 2 個解答 · 發問者 no_nickname 1 in 電腦與網際網路 ➔ 程式設計
你的程式有部分錯誤,我有修改過
#include
using namespace std;
//使用 std 名稱空間
class Integer {
//宣告類別名稱
public:
//公開涵數及屬性
Integer() {j_=0; cout<<"10\n";}
//預設建構子 , 將屬性 j_ 設為 0 ,並印出 10
Integer(int k) {j_=k; cout<<"20\n";}
//多載建構子 , 將屬性 j_ 設為 k ,並印出 20
~Integer() {cout<<"30\n";}
//解構子 印出 30
int rvalue () {return j_;}
// 回傳 屬性 j_ 值
int& lvalue() {return j_;}
// 回傳 屬性 j_ 的參考
private:
//私有涵數及屬性
int j_;
};
void main()
{
cout<<"Label 1\n";
// 印出 Label 1
Integer k;
// 宣告物件 k
cout<<"Label 2\n";
// 印出 Label 2
Integer *p=new Integer(5);
// 宣告一個型態 Integer 的指標 *p 並建立其實體 , 建構涵式考入參數 5
cout<<"Label 3\n";
// 印出 Label 3
cout<
cout<<"Label 4\n";
// 印出 Label4
k.lvalue()=8;
// k.lvalue() 取得 k 物件內 j_ 的參考 ,並設其值為 8
cout<
cout<<"Label 5\n";
// 印出 Label 5
//最後會發生 k 的解構子 印出 30
}
2007-02-07 12:44:38 · answer #1 · answered by 想 3 · 0⤊ 0⤋
//Power by Microsoft Visual Studio 2005
//可以使用 Dev-C++ 編譯此程式
#include
#include
using namespace std;
class Integer{
public:
//預設建構子
Integer(){
j_=0;
cout<<"10"<
//建構子
Integer(int k){
j_=k;
cout<<"20"<
//解構子
~Integer(){
cout<<"30"<
//成員函式
int rvalue(){
return j_;
}
//參照函式
int& lvalue(){
return j_;
}
private:
int j_;
};
int main(int argc,char** argv){
//=====START=====//
cout<<"Label 1"<
Integer k;
cout<<"Label 2"<
//呼叫建構子
//new Integer(5) 傳回在記憶體的位址
Integer *p=new Integer(5);
cout<<"Label 3"<
cout<
//可以試著把 j_ 改成 public
//可以加入 cout<
cout<
//=====END=====//
system("PAUSE");
return EXIT_SUCCESS;
}
2007-02-07 13:10:30 · answer #2 · answered by Big_John-tw 7 · 0⤊ 0⤋