B *p;
p = new B[3];
p[0] = B("man",4.8); p[1] = B("wang",3.6);
p[2] = B("lin", 3.1); 这种写法根本就是错误的, p = new B[3]这条语句有两个意思,一是分配内存空间,二是调用B的构造函数,不需要自己再显式的去调用B的构造方法, p[0] = B("man",4.8); p[1] = B("wang",3.6); p[2] = B("lin", 3.1); 即这三条语句是不需要的,去掉这三条语句因为你给B指定了一个带参的构造方法,编译器就不会产生一个不带参的构造方法,所以p = new B[3]编译的时候会...
|