C++ C++;Xcode构造函数错误
我刚开始将我的项目转移到Xcode,当我尝试构建我的项目时,我在构造函数定义上遇到了错误。 在默认构造函数中,我得到“声明说明符后的预期成员名称或“;”,在另一个构造函数中,我得到:C++ C++;Xcode构造函数错误,c++,xcode,C++,Xcode,我刚开始将我的项目转移到Xcode,当我尝试构建我的项目时,我在构造函数定义上遇到了错误。 在默认构造函数中,我得到“声明说明符后的预期成员名称或“;”,在另一个构造函数中,我得到: “应为“)” 字段的类型“Button::Button”不完整 非好友类成员“string”不能具有限定名称 #包括 #ifndef按钮 #定义按钮 名称空间接口1 { 类按钮 { 私人: std::字符串名; 浮动XPO; 浮动YPO; 浮动宽度; 浮动高度; 公众: //默认构造函数 按钮::按钮(); /
#包括
#ifndef按钮
#定义按钮
名称空间接口1
{
类按钮
{
私人:
std::字符串名;
浮动XPO;
浮动YPO;
浮动宽度;
浮动高度;
公众:
//默认构造函数
按钮::按钮();
//具有id、x、y、宽度和高度参数的构造函数
按钮::按钮(标准::字符串,浮点,浮点,浮点,浮点);
//接球手和接球手
std::string getName();
float getX();
无效setX(浮动);
浮球();
void setY(浮动);
float getWidth();
空隙设置宽度(浮动);
float getHeight();
空隙设置高度(浮动);
布尔被选中(int,int);
无效绘制(int,float,float,float,float);
};
}
#恩迪夫
知道出了什么问题吗?因为构造函数在类定义中,它们与其他成员函数一样,不需要
按钮::
前缀。有些编译器仍然接受额外的限定条件,有些则不接受
class Button {
Button(); //already in class scope, so no extra qualification needed
};
另一方面,当您在类之外定义这些成员时,确实需要限定条件。否则,它将生成一个新函数(至少对于具有返回类型的非构造函数):
摆脱
按钮::
。谢谢。为什么我在visual studio中需要它,而不是xCode?你在VS中不需要它。这是VS中的解析错误(或功能,取决于你如何看待它)。不。不。这是VS中的错误。@chris:将你的评论作为答案。然后你可以得到你应得的第一票,OP可以接受,我们可以继续前进。
class Button {
Button(); //already in class scope, so no extra qualification needed
};
class Button {
Button();
void foo();
};
void foo(){} //new function, not Button::foo()
void Button::foo(){} //definition of member function
Button::Button(){} //definition of constructor