2015-10-27 29 views
-2

我正在嘗試爲行創建構造函數,但即使此函數在poolball類中工作並且能夠在添加line.cpp和line.h之前運行,我仍然不斷收到此錯誤。此外,這是來自類的代碼,我不知道它爲什麼不編譯。代碼塊C++類構造函數錯誤

#include "Line.h" 
Line::Line(){ 
} 

Line::Line(int x1, int y1, int x2, int y2){ 
} 

void Line::setPos(int x1, int y1, int x2, int y2){ 
} 

void Line::draw(void){ 
} 

------------------------------------------------------------------------- 
#pragma once 

class Line{ 
public: 
    int x1; 
    int y1; 
    int x2, y2; 

    //constructor 
    Line(); 
    Line(int x1, int y1, int x2, int y2); 
    //methods 
    void setPos(int x1, int y1, int x2, int y2); 
    void draw(void); 

這是試圖建立和運行

||=== Build: Debug in 10.19class (compiler: GNU GCC Compiler) ===| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|2|error: extra  qualification 'Line::' on member 'Line' [-fpermissive]| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|2|error: 'Line::Line()' cannot be overloaded| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.h|10|error: with 'Line::Line()'| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|5|error: extra qualification 'Line::' on member 'Line' [-fpermissive]| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|5|error: 'Line::Line(int, int, int, int)' cannot be overloaded| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.h|11|error: with 'Line::Line(int, int, int, int)'| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|9|error: extra qualification 'Line::' on member 'setPos' [-fpermissive]| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|9|error: 'void Line::setPos(int, int, int, int)' cannot be overloaded| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.h|13|error: with 'void Line::setPos(int, int, int, int)'| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|12|error: extra qualification 'Line::' on member 'draw' [-fpermissive]| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|12|error: 'void Line::draw()' cannot be overloaded| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.h|14|error: with 'void Line::draw()'| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|13|error: expected '}' at end of input| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp||In constructor 'Line::Line(int, int, int, int)':| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|6|error: 'cout' is not a member of 'std'| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|6|error: 'endl' was not declared in this scope| 
C:\Users\Admin\Desktop\C++Projects\10.19class\Line.cpp|13|error: expected unqualified-id at end of input| 
||=== Build failed: 16 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| 
+0

您可能會考慮的一件事是'#incluce ',因爲您正在使用'std :: cout' – Bobby

+0

這個'void Line(void);'說了很多。你應該回頭學習默認的構造函數和構造函數的初始化 – Bobby

+0

這就是我搞砸它,並沒有改變代碼。原件在上面。 – Nolifepothead

回答

0

根據錯誤信息判斷,並假設破折號下方的內容是頭文件的完整內容,那麼您的問題是您在頭文件末尾缺少};。您需要在頭文件中用閉括號和分號關閉類定義,然後才能在Line.cpp文件中實現函數。

0

void Line(void)是不正確的,構造函數沒有返回類型和參數列表中你不應該寫void,既可以當我得到的錯誤。

+1

已更改。 – Nolifepothead