2013-07-30 87 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的一类特殊功能。