De error "no match for call to (counter) (counter&)

Status
Niet open voor verdere reacties.

carlo boy7

Gebruiker
Lid geworden
28 feb 2009
Berichten
156
Hallo,
Ik heb een programma proberen te schrijven die de jongens en meisjes optelt. Heel simpel maar als ik een copy constructor aan wil maken lukt het me niet
Ik krijg op lijn 63 de error: no match for call to (counter)(counter&)
Hier is mijn code:
[cpp]
#include <iostream>
#include <vector>
using namespace std;
class counter{
private:
int jongens;
int meisjes;
vector<string> naam;

public:
counter(const counter& c){
cout << "copy";
}
counter()
{
jongens = 0;
meisjes = 0;
}

counter(int jongens)
:jongens(jongens), meisjes(0){
}

counter(int jongens ,int meisjes)
:jongens(jongens), meisjes(meisjes){
}


bool setType(const char* wat)
{
if(wat == "jongens")
{
jongens++;
return true;
}
else if(wat == "meisjes")
{
meisjes++;
return true;
}
return false;
}
int getAantal(const char* wat) const
{
if(wat == "jongens")
{
return jongens;
}
else if(wat == "meisjes")
{
return meisjes;
}
return false;
}
};
int main()
{
counter tel,nu;
tel.setType("jongens");
tel.setType("jongens");
tel.setType("jongens");
tel.setType("meisjes");
nu(tel); //<--- lijn 63
cout << nu.getAantal("jongens");
system("pause");
}
[/cpp]
 
Laatst bewerkt:
Ik heb even wat uitgeprobeerd en het probleem lijkt te zijn dat je op regel 58 al een instantie van counter ("nu") aanmaakt waarbij de "gewone" constructor wordt aangeroepen. De aanroep op regel 63 is dus een functie-aanroep.

Als je op regel 58 ",nu" weghaalt en regel 63 vervangt door [cpp]counter nu(tel);[/cpp] werkt het bij mij wel.

Overigens kan je bij het plaatsen van C++-code beter gebruik maken van de [ cpp] en [ /cpp] tags, dan van [ code] en [ /code]. De cpp-tag toont namelijk regelnummers.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan