[課業] 程式語言問題

看板Examination作者 (mingrong)時間12年前 (2013/05/24 23:54), 編輯推噓5(5015)
留言20則, 5人參與, 最新討論串1/1
請問一下主程式的b2=b1那行是代表b2指向b1的記憶體位置嗎?? 但是我列印出來b2還是原本的b2位置耶=.=.... class A{ public: int x; protected: int y; }; class B:public A{ public: int z; }; int main(int argc, char *argv[]) { A a1; B b1,b2; b2=b1;//這行執行是做什麼的?? } 麻煩知道的大大說明一下!感謝><.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.31.118

05/24 23:59, , 1F
b2=b1好像是在做兩個物件的比較 比較是否相等 而不是給值
05/24 23:59, 1F

05/25 00:04, , 2F
比較??b1==a1....
05/25 00:04, 2F

05/25 00:05, , 3F
不對 剛剛去查書 好像是在做轉型?
05/25 00:05, 3F

05/25 00:06, , 4F
可是兩個不都是class B!!
05/25 00:06, 4F

05/25 00:13, , 5F
我看JAVA的書是在作類別的轉型啊 最近都在看JAVA熊熊看到
05/25 00:13, 5F

05/25 00:14, , 6F
C++的程式碼 剛剛還在想說你怎麼沒有new物件出來
05/25 00:14, 6F

05/25 00:14, , 7F
C++好像不用new就會產生物件了?
05/25 00:14, 7F

05/25 00:25, , 8F
恩~C++宣告時就已經配置記憶體了~不用new
05/25 00:25, 8F

05/25 00:27, , 9F
把b1裡面的值copy給b2
05/25 00:27, 9F

05/25 00:30, , 10F
應該是assign吧。 將b1變數的值覆蓋過去b2變數的值。
05/25 00:30, 10F

05/25 00:31, , 11F
抱歉=.= C++的語法忘光了 給錯誤訊息
05/25 00:31, 11F

05/25 00:35, , 12F
順便請問一下 JAVA的物件給值也是b2=b1嗎?
05/25 00:35, 12F

05/25 00:38, , 13F
所以是將b1裡面有的屬性值都給b2嗎?
05/25 00:38, 13F

05/25 00:51, , 14F
對。 程式裡的b1=b2,就是把右邊的值指派(覆蓋)左邊的值
05/25 00:51, 14F

05/25 00:52, , 15F
java也是同樣邏輯。
05/25 00:52, 15F

05/25 01:16, , 16F
更正一下,是b2=b1。
05/25 01:16, 16F

05/25 06:22, , 17F
遇到這種問題會用程式跑一下驗證,如果你沒有裝VC,
05/25 06:22, 17F

05/25 06:23, , 18F
也可以用線上版的跑一下驗證看看
05/25 06:23, 18F

05/25 06:23, , 19F
05/25 06:23, 19F

10/11 22:49, , 20F
所以是將b1裡面有的屬 https://daxiv.com
10/11 22:49, 20F
文章代碼(AID): #1Hduqfdy (Examination)