#include<iostream>
using namespace std;
class Location{
public:
Location(int m,int n)//构造函数
{
X = m;
Y = n;
}
void Init(int initX,int initY)//定义带有两个参数的成员函数
{
X = initX;
Y = initY;
}
int GetX()
{
return X;
}
int GetY()
{
return Y;
}
private:
int X,Y;
};
int main()
{
Location A3;
A3.Init(785,980);//调用公有函数成员init,分别给数据成员X和Y赋值785和980
cout<<A3.GetX()<<" "<<A3.GetY()<<endl;
return 0;
}
这里发生了一个错误
error C2512: “Location” : no appropriate default constructor available
是不是建立一个空的构造函数就行了 怎么加上去呢?或是其他别的问题?
新手没有分啦 大家将就一点吧~
解决方案
20
加一个空的构造就行。
一旦你提供了构造函数,那么系统将不再提供无参的默认构造函数,但是你的A3又需要调用无参的构造(所以报错了)
一旦你提供了构造函数,那么系统将不再提供无参的默认构造函数,但是你的A3又需要调用无参的构造(所以报错了)
#include<iostream>
using namespace std;
class Location{
public:
Location(){}
Location(int m, int n)//构造函数
{
X = m;
Y = n;
}
void Init(int initX, int initY)//定义带有两个参数的成员函数
{
X = initX;
Y = initY;
}
int GetX()
{
return X;
}
int GetY()
{
return Y;
}
private:
int X, Y;
};
int main()
{
Location A3;
A3.Init(785, 980);//调用公有函数成员init,分别给数据成员X和Y赋值785和980
cout << A3.GetX() << " " << A3.GetY() << endl;
return 0;
}
10
实例化对象不对。
int main()
{
Location A3;
A3.Init(785,980);//调用公有函数成员init,分别给数据成员X和Y赋值785和980
cout<<A3.GetX()<<” “<<A3.GetY()<<endl;
return 0;
}
你的构造函数是
Location(int m,int n)//构造函数
{
X = m;
Y = n;
}
而你在构造对象时却使用了默认的构造函数,所以会出现编译错误。
2个解决办法:
1、删掉构造函数。
2、将 Location A3;语句改成 Location A3(785,980);
int main()
{
Location A3;
A3.Init(785,980);//调用公有函数成员init,分别给数据成员X和Y赋值785和980
cout<<A3.GetX()<<” “<<A3.GetY()<<endl;
return 0;
}
你的构造函数是
Location(int m,int n)//构造函数
{
X = m;
Y = n;
}
而你在构造对象时却使用了默认的构造函数,所以会出现编译错误。
2个解决办法:
1、删掉构造函数。
2、将 Location A3;语句改成 Location A3(785,980);