代码
#include <vector>
#include <array>
using namespace std;
struct Point{
double x,y,z;
Point(){
cout << "no param" << endl;
}
Point(double x_, double y_,double z_){
x=x_;y=y_;z=z_;
cout << "with param" << endl;
}
};
int main() {
Point p;
cout << &p <<endl;
p=Point();
cout << &p <<endl;
p=Point(.1, .2, .3);
cout << &p <<endl;
Point p1();
cout << &p1 <<endl;
Point p2(.1, .2, .3);
cout << &p2 <<endl;
}
运行结果
no param
0x7ffe4f2a1d20
no param
0x7ffe4f2a1d20
with param
0x7ffe4f2a1d20
1
with param
0x7ffe4f2a1de0
疑问之处
Point p1();
cout << &p1 <<endl;
输出为1,也就是没有调用默认构造函数,地址为1,不理解。