指针和new的问题
#include<iostream>class claA(
public:
double x,y;
static int num; //静态数据成员,记录通过构造函数生成对象的个数
claA(){
x=0;y=0;
num++; //每生成一个对象,静态数据成员num增加1
}
claA(double x0,double y0){
x=x0;y=y0;num++;
}
static void staFum(){ //静态函数成员
cout<<"current_num="<<num<<endl;
}
};
int claA::num=0;
void main(){
claA obj(1.2,3.4),*p;
cout<<"claA::num="<<claA::num<<"\t";
claA::staFun();
cout<<"obj.num="<<obj.num<<"\t";
obj.staFun();
claA A[3]; //说明具有3个对象的数组,将3次调用构造函数
cout<<"claA::num="<<claA::num<<"\t";
claA::staFun();
p=new claA(5.6,7.8);
cout<<"claA::num="<<claA::num<<"\t";
claA::staFun();
cout<<"p->num="<<p->num<<"\t";
p->staFun();
}
程序运行后,屏幕显示结果为:
claA::num=1 current_num=1
obj.num=1 current_num=1
claA::num=4 current_num=4
claA::num=5 current_num=5
p->num=5 current_num=5
问题:
1,claA obj(1.2,3.4),*p;为什么*P没有初始化,我的计算结果比正确结果多1,能详细说说怎么回事吗
2,p=new claA(5.6,7.8),解释一下
3,claA::num=1 current_num=1 它们之间为什么没换行,即为什么不是上下两行,而在一行