c++: Geen instantie van overbelaste functie

highInterestChecking Header:

#ifndef H_highInterestChecking
#define H_highInterestChecking
#include "noservicechargechecking.h"
#include <string>
class highInterestChecking: public noServiceChargeChecking
{
public:
    highInterestChecking(std::string =" ",int = 0, double = 0.00, double = 0.00, double = 0.00);
};
#endif

highInterestChecking cpp:

#include "highInterestChecking.h"
using std::string;
highInterestChecking::highInterestChecking(string name, int acct, double bal, int numCheck, double min, double i)
{
    bankAccount::setAcctOwnersName(name);
    bankAccount::setAcctNum(acct);
    bankAccount::setBalance(bal);
    checkingAccount::setChecks(numCheck);
    noServiceChargeChecking::setMinBalance(min);
    noServiceChargeChecking::setInterestRate(i);
}

Ik krijg de foutmelding “No instance of overloaded function.” onder de constructornaam highInterestChecking in het cpp-bestand weet ik niet wat de oorzaak is. Ik heb er een tijdje naar gekeken en kan nu geen fout vinden. misschien kan iemand helpen?


Antwoord 1, autoriteit 100%

In de kop heb je:

highInterestChecking(std::string =" ",int = 0, double = 0.00, double = 0.00, double = 0.00);

Waarvoor 5argumenten nodig zijn, In het bronbestand heb je:

highInterestChecking::highInterestChecking(string name, int acct, double bal, int numCheck, double min, double i)
                                                                                ^^^^^^^^^^^

waarvoor 6argumenten nodig zijn. Het lijkt erop dat int numCheckniet overeenkomt met de handtekening van de koptekst.


Antwoord 2, autoriteit 40%

Je hebt deze constructor in de klassendeclaratie:

highInterestChecking(std::string =" ",int = 0, double = 0.00, double = 0.00, double = 0.00);

en deze in de klassendefinitie:

highInterestChecking::highInterestChecking(string name, int acct, double bal, int numCheck, double min, double i)

De parametertypes uit beide parameterlijsten moeten overeenkomen.


Antwoord 3, autoriteit 40%

 highInterestChecking::highInterestChecking(string name, int acct, 
                           double bal, int numCheck, double min, double i)
                                       //^^^

bestaat niet in het headerbestand van je klas, het headerbestand heeft 5 parameters, maar je hebt er 6 in het cpp-bestand, het parametertype lijkt niet overeen te komen,

Other episodes