越听越晕了
问题:Shape *shape1 = new Circle(3, 5, 4.0);
与Shape *shape1;
shape1 = new Circle(3, 5, 4.0);
一样吗?请详细说明什么含义?谢谢!
问题:Shape *shape1 = new Circle(3, 5, 4.0);
与Shape *shape1;
shape1 = new Circle(3, 5, 4.0);
一样吗?请详细说明什么含义?谢谢!
2017-12-17
(Shape *) p
p是一个指针,标示p将指向一个Shape * 类型的值。
new Circle(3, 5, 4.0); //在堆内存创建一个Circle对象,返回一个内存地址【也就是指针】
p = new Circle(3, 5, 4.0);//这个地址赋值给p。【内存地址就像 0f23aff7这个一样。】【这个地址里面存着这个对象】
回答你的问题:
(1)
Shape *shape1 = new Circle(3, 5, 4.0);//在堆内存创建一个Circle对象,返回一个内存地址【也就是指针】,地址传给shape1
(2)
Shape *shape1;//声明一个指针【空的】
shape1 = new Circle(3, 5, 4.0);//创建了一个对象,返回一个地址,传给shape1
类比:
int a = 1;
或者
int a ;
a = 1;
举报