Reputation: 7594
I have the following code in my header:
StripChartConfiguration(
uint32_t tmpStripChartFrameworkWidgetWidth,
uint32_t tmpStripChartFrameworkWidgetHeight,
QString tmpMissionName,
QList<QString> tmpCommandandToneNameQList,
QList<QString> mToneNameQList,
FTSProtocolType tmpMissionProtocol,
float_t mStripHeightInPixels,
float_t tmpTimeSliceWidth,
uint32_t tmpTimeframeInSecondsPerStrip,
QColor tmpStripChartGLViewportBackgroundColor
= QColor(Qt::lightGray),
QColor tmpDefaultStateSliceColor
= QColor(Qt::lightGray),
QColor tmpCommandedStateSliceColor
= QColor(Qt::darkBlue),
QColor tmpRequestedStateSliceColor
= QColor(Qt::darkMagenta),
QColor tmpRequestedConfirmedStateSliceColor
= QColor(Qt::darkGreen),
QColor tmpConfirmedDefaultStateSliceColor
= QColor(Qt::darkYellow),
QColor tmpSuspendedDefaultStateSliceColor
= QColor(0x82B384), //Stale Green
QColor tmpCarrierDefaultStateSliceColor
= QColor(Qt::lightGray),
QColor tmpCarrierCommandedStateSliceColor
= QColor(Qt::blue),
QColor tmpCarrierRequestedStateSliceColor
= QColor(Qt::magenta),
QColor tmpCarrierRequestedConfirmedStateSliceColor
= QColor(Qt::green),
QColor tmpCarrierConfirmedDefaultStateSliceColor
= QColor(Qt::yellow),
QColor tmpCarrierSuspendedDefaultStateSliceColor
= QColor(0x82B384)); //Stale Green
Now I want to instantiate an object of this type without having to specify colors. So from my driver program I do:
uint32_t mFWWidth = 800;
uint32_t mFWHeight = 600;
QString mMissionName("This Is A Mission");
QList<QString> mCommandNameList;
for (uint32_t i = 0; i < 10; ++i) {
mCommandNameList.push_back(QString("Command"));
}
QList<QString> mToneNameList;
for (uint32_t i = 0; i < 6; ++i) {
mToneNameList.push_back(QString("Tone"));
}
StripChartConfiguration::FTSProtocolType mSCCFTSProtocol =
StripChartConfiguration::Irig;
float_t mStripHeightInPixels = 10;
float_t mTimeSliceWidthInPixels = 10;
uint32_t mTimeframeInSecondsPerStrip = 15;
/*
* End of list of configuration for strip chart
*/
StripChartConfiguration mSCCC(mFWWidth, mFWHeight,
mMissionName, mCommandNameList, mToneNameList,
mSCCFTSProtocol, mStripHeightInPixels,
mTimeframeInSecondsPerStrip);
However g++ complains about me missing arguments. What am I missing?
mehoggan@mehoggan:~/Dev/StripChart$ make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/QtSDK/Desktop/Qt/474/gcc/mkspecs/default -I. -I/opt/QtSDK/Desktop/Qt/474/gcc/include/QtCore -I/opt/QtSDK/Desktop/Qt/474/gcc/include/QtGui -I/opt/QtSDK/Desktop/Qt/474/gcc/include/QtOpenGL -I/opt/QtSDK/Desktop/Qt/474/gcc/include -I/usr/X11R6/include -I. -o main.o main.cpp
main.cpp: In function ‘int main(int, char**)’:
main.cpp:39:36: error: no matching function for call to ‘StripChartConfiguration::StripChartConfiguration(uint32_t&, uint32_t&, QString&, QList<QString>&, QList<QString>&, StripChartConfiguration::FTSProtocolType&, float_t&, uint32_t&)’
main.cpp:39:36: note: candidates are:
stripchartconfiguration.h:84:5: note: StripChartConfiguration::StripChartConfiguration(const StripChartConfiguration&)
stripchartconfiguration.h:84:5: note: candidate expects 1 argument, 8 provided
stripchartconfiguration.h:47:5: note: StripChartConfiguration::StripChartConfiguration(uint32_t, uint32_t, QString, QList<QString>, QList<QString>, StripChartConfiguration::FTSProtocolType, float_t, float_t, uint32_t, QColor, QColor, QColor, QColor, QColor, QColor, QColor, QColor, QColor, QColor, QColor, QColor, QColor)
stripchartconfiguration.h:47:5: note: candidate expects 22 arguments, 8 provided
main.cpp:31:13: warning: unused variable ‘mTimeSliceWidthInPixels’ [-Wunused-variable]
make: *** [main.o] Error 1
Upvotes: 0
Views: 1232
Reputation: 40502
You are passing ..., float_t&, uint32_t&)
, and ..., float_t, float_t, uint32_t
is expected. You're just missing one float value.
Note that your code style looks bad. You shouldn't create constructors and methods with so many parameters. It's easy to miss one of them. Obviously it was happened already. Assigning each field separately will be more clear and safe.
Upvotes: 1