2017-04-11 48 views
0

我写了一个类,其中有一个构造函数需要2个参数,但是当我尝试使用这些参数的类的对象时,我得到该语法错误,我尝试了解我所知道的一切来解决这个问题但我不能。 代码:语法错误'常量错误

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

错误:

Error C2059 syntax error: 'constant' Project1

+4

你不能在Vector2D中创建一个Vector2D。那将是一个无限循环。请发布一条与错误消息 – NathanOliver

+2

'Vector2D d(0,0)匹配的[mcve];'我不确定你想要在那条线上做什么,但它不应该在那里。 – Borgleader

+0

好吧,我在课堂以外使用它,并且遇到同样的问题? –

回答

2

如果我明白你所拍摄的东西,你会写类的方法如下

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这是你试图定义的类的一个实例。

+0

是的,但是当我复制你的代码并尝试在另一个类中使用该类的对象时(在包含头后)我仍然得到完全相同的语法错误,当我传递参数它就像这个Vecror2D d(2,4) –

+0

@HazemGamal你能否按照你的描述显示你使用这个类的尝试? – CoryKramer

+0

我用它在main()中使用的另一个类中工作时在gloabal作用域中使用时也有效,但是当我在另一个类中使用它时,它会给我那个错误 –