gpt4 book ai didi

C++ Xcode 构造函数错误

转载 作者:行者123 更新时间:2023-11-30 04:20:32 26 4
gpt4 key购买 nike

刚开始将我的项目移至 Xcode,在尝试构建我的项目时,我的构造函数定义出现错误。在默认构造函数上,我得到“预期的成员名称或';'在声明说明符之后”,在另一个构造函数上我得到:

  1. >“预期‘)’”
  2. 字段的类型“Button::Button”不完整
  3. 非好友类成员 'string' 不能有限定名


#include <string>

#ifndef BUTTON_H
#define BUTTON_H

namespace interface1
{
class Button
{
private:
std::string name;
float xPos;
float yPos;
float width;
float height;

public:
//Default constructor
Button::Button();
//Constructor with id, x, y, width and height parameters
Button::Button(std::string, float, float, float, float);

//Getters and setters
std::string getName();
float getX();
void setX(float);
float getY();
void setY(float);
float getWidth();
void setWidth(float);
float getHeight();
void setHeight(float);
bool isClicked(int, int);
void draw(int, float, float, float, float);
};
}
#endif

知道出了什么问题吗?

最佳答案

由于构造函数在您的类定义中,因此与其他成员函数一样,它们不需要 Button:: 前缀。有些编译器仍然接受额外的资格,有些则不接受。

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

关于C++ Xcode 构造函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15227987/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com