类的数据成员能否赋默认值?
我编了一段C++程序,在类里包含了数组数据成员,并给它赋了默认值,运行时出错,不知何故,请高人解答.
我的相关代码如下:
“Myapp.h”
class MYAPP {
double dMyData [2];
public:
MYAPP();
MYAPP(double dt[2]={0.0,0.0});
MYAPP(const MYAPP &);
~MYAPP();
double Length();
};
“Myapp.cpp”
#include "Myapp.h "
#include <math.h>
MYAPP:: MYAPP()
{
//Overloaded constructor
}
MYAPP :: MYAPP (double dt[2])
{
dMyData=dt;
}
MYAPP :: MYAPP(const MYAPP & ap)
{
dMyData = ap.dMyData;
}
MYAPP :: ~ MYAPP()
{
//deconstrucotor
}
double MYAPP :: Length()
{
return sqrt(dMyData[0]*dMyData[0]+dMyData[1]*dMyData[1]);
}
“Mainprog.cpp”
#include”Myapp.h”
MYAPP g_cAppArray[10];
//在CMainprogApp::CMainprogApp()里加入以下语句
MYAPP* temp = new MYAPP;
for (int i=0;i <10;i++)
{
temp.MyData = {i,i};
g_cAppArray[i]=temp;
std::cout < <g_cAppArray[i].Length < <std::endl;
}
delete temp;
谢谢解答
[解决办法]
要用赋值或内存拷贝
MYAPP :: MYAPP (double dt[2])
{
dMyData[0]=dt[0];
dMyData[1]=dt[1];
}
MYAPP :: MYAPP(const MYAPP & ap)
{
dMyData[0] = ap.dMyData[0];
dMyData[1] = ap.dMyData[1];
}