作者mingrong2 (mingrong)
看板Examination
標題[課業] 程式語言問題
時間Fri May 24 23:54:14 2013
請問一下主程式的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
1F:推 haushau:b2=b1好像是在做兩個物件的比較 比較是否相等 而不是給值 05/24 23:59
2F:→ mingrong2:比較??b1==a1.... 05/25 00:04
3F:推 haushau:不對 剛剛去查書 好像是在做轉型? 05/25 00:05
4F:→ mingrong2:可是兩個不都是class B!! 05/25 00:06
5F:→ haushau:我看JAVA的書是在作類別的轉型啊 最近都在看JAVA熊熊看到 05/25 00:13
6F:→ haushau:C++的程式碼 剛剛還在想說你怎麼沒有new物件出來 05/25 00:14
7F:→ haushau:C++好像不用new就會產生物件了? 05/25 00:14
8F:→ mingrong2:恩~C++宣告時就已經配置記憶體了~不用new 05/25 00:25
9F:推 flydragon198:把b1裡面的值copy給b2 05/25 00:27
10F:→ rock0030:應該是assign吧。 將b1變數的值覆蓋過去b2變數的值。 05/25 00:30
11F:推 haushau:抱歉=.= C++的語法忘光了 給錯誤訊息 05/25 00:31
12F:→ haushau:順便請問一下 JAVA的物件給值也是b2=b1嗎? 05/25 00:35
13F:→ mingrong2:所以是將b1裡面有的屬性值都給b2嗎? 05/25 00:38
14F:→ rock0030:對。 程式裡的b1=b2,就是把右邊的值指派(覆蓋)左邊的值 05/25 00:51
15F:→ rock0030:java也是同樣邏輯。 05/25 00:52
16F:→ rock0030:更正一下,是b2=b1。 05/25 01:16
17F:推 flydragon198:遇到這種問題會用程式跑一下驗證,如果你沒有裝VC, 05/25 06:22
18F:→ flydragon198:也可以用線上版的跑一下驗證看看 05/25 06:23