課程
/后端開發(fā)
/C++
/C++遠征之多態(tài)篇
問題:Shape *shape1 = new Circle(3, 5, 4.0);
與Shape *shape1;
shape1 = new Circle(3, 5, 4.0);
一樣嗎?請詳細說明什么含義?謝謝!
2017-12-17
源自:C++遠征之多態(tài)篇 2-4
正在回答
前者是聲明后初始化,后者是聲明后賦值
我覺得是一樣的
(Shape *) p ?
p是一個指針,標示p將指向一個Shape * 類型的值。
new Circle(3, 5, 4.0); ?//在堆內(nèi)存創(chuàng)建一個Circle對象,返回一個內(nèi)存地址【也就是指針】
p =?new Circle(3, 5, 4.0);//這個地址賦值給p。【內(nèi)存地址就像 0f23aff7這個一樣?!俊具@個地址里面存著這個對象】
回答你的問題:
(1)
Shape *shape1 = new Circle(3, 5, 4.0);//在堆內(nèi)存創(chuàng)建一個Circle對象,返回一個內(nèi)存地址【也就是指針】,地址傳給shape1
(2)
Shape *shape1;//聲明一個指針【空的】
shape1 = new Circle(3, 5, 4.0);//創(chuàng)建了一個對象,返回一個地址,傳給shape1
類比:
int a = 1;
或者
int a ;
a = 1;
舉報
本教程將帶領(lǐng)大家體會面向?qū)ο笕筇匦灾械亩鄳B(tài)特性
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2019-03-19
前者是聲明后初始化,后者是聲明后賦值
2018-02-26
我覺得是一樣的
2017-12-18
(Shape *) p ?
p是一個指針,標示p將指向一個Shape * 類型的值。
new Circle(3, 5, 4.0); ?//在堆內(nèi)存創(chuàng)建一個Circle對象,返回一個內(nèi)存地址【也就是指針】
p =?new Circle(3, 5, 4.0);//這個地址賦值給p。【內(nèi)存地址就像 0f23aff7這個一樣?!俊具@個地址里面存著這個對象】
回答你的問題:
(1)
Shape *shape1 = new Circle(3, 5, 4.0);//在堆內(nèi)存創(chuàng)建一個Circle對象,返回一個內(nèi)存地址【也就是指針】,地址傳給shape1
(2)
Shape *shape1;//聲明一個指針【空的】
shape1 = new Circle(3, 5, 4.0);//創(chuàng)建了一個對象,返回一個地址,傳給shape1
類比:
int a = 1;
或者
int a ;
a = 1;