2013-07-30 226 views
0

我很久沒有使用C++了,我從來沒有真正掌握過類。
我決定通過製作一個小型幾何應用來重新學習課程。
這裏是square.h:C++構造函數問題

class Square{ 
public: 
    float width; 
    float height; 
    float area; 
    float perimeter; 


    void Square(int,int); 
    void Square(); 
    void ~Square(); 




}; 

這裏是square.cpp:

#include "square.h" 

Square::Square (int w, int h){ 
    width = w; 
    height = h; 
    area = width * height; 
    perimeter = (width*2)+(height*2); 
} 

Square::Square(){ 

} 

Square::~Square(){ 

} 

當我運行/籌建方案,它說error: return type specification for constructor invalid
我想這是說的構造函數和析構函數應該是void以外的東西,但我認爲我錯了。

+0

爲什麼當寬度和高度存儲爲浮點數時,構造函數參數ints是什麼? –

回答

3

我想這是他說的構造函數和析構函數應該比void

其他的東西是,它應該是:

Square(int,int); 
Square(); 
~Square(); 

我想void裝置的功能沒有按」沒有回報什麼?

是的,但這些都不是功能。它們是構造函數和析構函數,它們不需要指定的返回類型。

+0

謝謝!我以爲'無效'意味着函數不返回任何東西? – Awalrod

+0

@Awalrod是的,但它們不是功能。他們是構造函數和析構函數。 – Doorknob

0

擺脫構造函數和析構函數中的void

Square(int,int); 
Square(); 
~Square(); 

還有一個建議,因爲你正在學習。如果您不想將類變量暴露給子類,請將它們設爲私有。

0

在構造函數和析構函數應該是沒有返回類型可言,

class Square 
{ 
public: 
    float width; 
    float height; 
    float area; 
    float perimeter; 


    Square(int,int); 
    Square(); 
    ~Square(); 

}; 
0

Constructordestructor沒有返回類型。它們是具有相同名稱class的一類特殊功能。