2017-04-11 50 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作用域中使用時也有效,但是當我在另一個類中使用它時,它會給我那個錯誤 –