Правильно ли создал я констуктор в c++
Правильно ли создал я конструктор CBraidedFishingLine?
BraidedFishingLine.cpp
#include "pch.h"
#include "BraidedFishingLine.h"
using namespace std;
/**
* Constructor
*
* \param double fiberBreakingStrenght, fiber breaking streanght
* \param int numStrands, number of strands in the braid
* \param double stretchFactor, the stretch factor of the underlying fiber (must be >1.0)
*/
CBraidedFishingLine::CBraidedFishingLine(double fiberBreakingStrength, int numStrands, double stretchFactor) : CFishingLine(fiberBreakingStrength, stretchFactor)
{
numStrands = mNumStrands;
}
Ответы (1 шт):
Автор решения: HolyBlackCat
→ Ссылка
Поскольку в определении CBraidedFishingLine::CBraidedFishingLine(...) вы не указали, какой конструктор нужно вызвать для родителя CFishingLine, компилятор пытается вызвать конструктор без параметра, которого у вас нет (он генерируется автоматически только если не писать для класса никаких своих конструкторов).
Решение: сказать компилятору, что нужно использовать конструктор с двумя параметрами:
CBraidedFishingLine::CBraidedFishingLine(double fiberBreakingStrength, int numStrands, double stretchFactor)
: CFishingLine(fiberBreakingStrength, stretchFactor), mNumStrands(numStrands)
{}