将参数从子类构造函数传递给基类构造函数

时间:2015-11-07 05:52:06

标签: constructor redefinition inherited

谢谢你的帮助。这是我第一次发帖!

我正在尝试将Square类构造函数传递给Rectangle类构造函数,并且出现以下错误:

  

Square.cpp:9:错误:重新定义'Square :: Square(double)'   Square.hpp:19:错误:此前定义的'Square :: Square(double)'

目标是将一个参数(我推测两次)从Square类传递给父Rectangle类(它接受2个参数)。

这是我的代码:

// Square.hpp

#ifndef SQUARE_HPP
#define SQUARE_HPP
#include "Rectangle.hpp"
using namespace std;

class Square : public Rectangle
{
//private:

public:
Square(double sideSquare):Rectangle(sideSquare, sideSquare){};
//Square(double sideSquare):Rectangle(double, double){}

void setLength(double);
void setWidth(double);
};
#endif

// Square.cpp

#include "Square.hpp"
using namespace std;

Square::Square(double sideSquare) : Rectangle (sideSquare, sideSquare){}

void Rectangle::setLength(double lengthIn)
{length = lengthIn; width = lengthIn;}

void Rectangle::setWidth(double widthIn)
{width = widthIn; length = widthIn;} 

// squareMain.cpp
#include "Square.hpp"
#include <iostream>
using namespace std;

int main ()
{
Rectangle box1(14, 11.5);
cout << "box1 area: " << box1.area() << endl;
cout << "box1 perimeter: " << box1.perimeter() << endl;

return 0;  
}

我没有包含Rectangle.hpp和Rectangle.cpp。我非常感谢你的帮助,提前谢谢

0 个答案:

没有答案