越聽越暈了
問題:Shape *shape1 = new Circle(3, 5, 4.0);
與Shape *shape1;
shape1 = new Circle(3, 5, 4.0);
一樣嗎?請(qǐng)?jiān)敿?xì)說明什么含義?謝謝!
問題:Shape *shape1 = new Circle(3, 5, 4.0);
與Shape *shape1;
shape1 = new Circle(3, 5, 4.0);
一樣嗎?請(qǐng)?jiān)敿?xì)說明什么含義?謝謝!
2017-12-17
舉報(bào)
2019-03-19
前者是聲明后初始化,后者是聲明后賦值
2018-02-26
我覺得是一樣的
2017-12-18
(Shape *) p ?
p是一個(gè)指針,標(biāo)示p將指向一個(gè)Shape * 類型的值。
new Circle(3, 5, 4.0); ?//在堆內(nèi)存創(chuàng)建一個(gè)Circle對(duì)象,返回一個(gè)內(nèi)存地址【也就是指針】
p =?new Circle(3, 5, 4.0);//這個(gè)地址賦值給p。【內(nèi)存地址就像 0f23aff7這個(gè)一樣。】【這個(gè)地址里面存著這個(gè)對(duì)象】
回答你的問題:
(1)
Shape *shape1 = new Circle(3, 5, 4.0);//在堆內(nèi)存創(chuàng)建一個(gè)Circle對(duì)象,返回一個(gè)內(nèi)存地址【也就是指針】,地址傳給shape1
(2)
Shape *shape1;//聲明一個(gè)指針【空的】
shape1 = new Circle(3, 5, 4.0);//創(chuàng)建了一個(gè)對(duì)象,返回一個(gè)地址,傳給shape1
類比:
int a = 1;
或者
int a ;
a = 1;