[問題] 繼承 建構問題

看板C_and_CPP作者 (MC)時間12年前 (2011/09/24 14:56), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++2008 問題(Question): 換個方式來問好了 假設我有 A B 兩個class 其中 class A{ private: int a; }; class B{ private: int b; }; 然後當我要在main裡面 建構一個B物件的時候 B b(1,2); 在不是用 B::B(int x, int y) : A(x), b(y) {} 這方式的前提下 我要怎麼 把a值給寫進去 例子 我正在寫的 A是一個image,有長寬與圖的指標, B是bmp 的class, 有bmp的標頭檔 我是想要在主程式中用 B b('filepath'); 然後在B的建構式中 讀檔 把標頭檔讀進去 再用A建立完整個圖 B::B(char* filepath){ fstream input; //省略 input.read((char*) width, 4); //省略 } 就是因為在宣告一張bmp的時候 我沒辦法直接知道要傳進去給 image 的值 所以我想在bmp的建構式中 也把image的資訊寫到裡面 想請問有沒有甚麼方法?? 感謝^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.49.101

09/24 20:58, , 1F
有個head.h沒上傳?
09/24 20:58, 1F

09/24 21:07, , 2F
bmp_load.cpp 34行是不是有問題
09/24 21:07, 2F
※ 編輯: MiguelC 來自: 218.167.49.216 (09/25 00:53)

09/25 13:01, , 3F
如果Class B裡有Class A的pointer可不可行?
09/25 13:01, 3F

09/25 13:46, , 4F
a needs to be protected, not private
09/25 13:46, 4F

09/25 13:48, , 5F
而且你的 B 要繼承 A 才能繼承它的建構式不是嗎
09/25 13:48, 5F
感謝^^ 如果用protected的話 程式碼都不用改 就ok了~ 之前讀不太懂protected 所以就沒有用過 剛剛跑去找了幾個例子 終於改好了 ※ 編輯: MiguelC 來自: 140.113.69.230 (09/25 17:09)
文章代碼(AID): #1EVNyd98 (C_and_CPP)