作者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