作者 主題: C++, 想請教物件繼承的問題  (閱讀 3232 次)

0 會員 與 1 訪客 正在閱讀本文。

f905201

  • 可愛的小學生
  • *
  • 文章數: 8
    • 檢視個人資料
C++, 想請教物件繼承的問題
« 於: 2012-05-20 00:15 »
請問各位坂大,

CODE如下
代碼: [選擇]
#include <iostream>
using namespace std;

class aaa
{
public:
aaa(int){}
virtual void p1(){cout << "aaa";}

};

class bbb :public aaa
{
public:
int v1;
bbb(int):aaa(3),v1(4){}
void p1(){cout << "bbb";}

};

aaa f1 ()
{

return bbb(3);

}

int main()
{
aaa a1(1);
aaa a2 = f1();
a1.p1();
a2.p1();

return 0;
}


想請問,若想讓a2輸出bbb應該怎麼修正呢???
virtual是這樣用的嗎??

elleryq

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 908
  • 性別: 男
    • 檢視個人資料
    • Thinking more...
Re: C++, 想請教物件繼承的問題
« 回覆 #1 於: 2012-05-22 15:24 »
應該是這樣
代碼: [選擇]
aaa* a2=fl();
a2->pl();
Plan your work, then work your plan.
我的首頁:http://blog.elleryq.idv.tw
351899by http://counter.li.org

f905201

  • 可愛的小學生
  • *
  • 文章數: 8
    • 檢視個人資料
Re: C++, 想請教物件繼承的問題
« 回覆 #2 於: 2012-05-22 19:41 »
這樣還得把f1的return type改成return reference 吧?

elleryq

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 908
  • 性別: 男
    • 檢視個人資料
    • Thinking more...
Re: C++, 想請教物件繼承的問題
« 回覆 #3 於: 2012-05-23 09:57 »

對,指標或reference都可以。
Plan your work, then work your plan.
我的首頁:http://blog.elleryq.idv.tw
351899by http://counter.li.org