【问题标题】:Syntax error 'constant error语法错误'常量错误
【发布时间】:2017-04-12 04:08:14
【问题描述】:

我写了一个类,它有一个带有 2 个参数的构造函数,但是当我尝试使用带有这些参数的类的对象时,我得到了语法错误,我已经尝试了所有我知道的方法来解决这个问题,但我做不到. 代码:

class Vector2D{
public: 
Vector2D(int  xx, int yy) {}
Vector2D d(0, 0);
};

错误:

错误 C2059 语法错误:'constant' Project1

【问题讨论】:

  • 您不能在Vector2D 内创建Vector2D。那将是一个无限循环。请发布与错误消息匹配的minimal reproducible example
  • Vector2D d(0, 0); 我不确定你要对它所在的那条线做什么,但它不应该在那里。
  • 好的,我在课外使用它,我遇到了同样的问题?
  • “课外”在哪里?主要是?在标题中,在其他类中?在全球范围内?
  • 是在另一个类中(包括标题后)

标签: c++


【解决方案1】:

如果我理解您的目标,您编写课程的方式如下

class Vector2D
{
public: 
    Vector2D() = default;
    Vector2D(int xx, int yy) : m_xx(xx), m_yy(yy) {}
private:
    int m_xx = 0;
    int m_yy = 0;
};

您当前的问题是这一行

Vector2D d(0, 0);

您似乎正在尝试声明一个成员变量d,它是您尝试定义的类的一个实例。

【讨论】:

  • 是的,但是当我复制您的代码并尝试在另一个类中使用该类的对象时(包括标题后),当我像这样 Vecror2D 向它传递参数时,我仍然会遇到完全相同的语法错误d(2,4)
  • @HazemGamal 你能像你描述的那样展示你使用这个类的尝试吗?
  • 我在另一个类中使用它,它在 main() 中使用时也可以在全局范围内使用,但是当我在另一个类中使用它时,它给了我这个错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 2013-02-24
  • 2013-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多