Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] error: no matching function for call to '...'

Ostatnio zmodyfikowano 2014-04-09 21:38
Autor Wiadomość
Awantura
Temat założony przez niniejszego użytkownika
[C++] error: no matching function for call to '...'
» 2014-04-09 19:50:25
Hejka, napisałem prostą klasę, przy użyciu zaprzyjaźnionej funkcji, lecz bład kompilacji jest następujący:

error: no matching function for call to 'towar::towar(const char [2])'|


Poniżej kod:

C/C++
#include<iostream>
#include <cstring>

using namespace std;

class towar {
private:
    char * opis;
    float cena;
    int liczba;
   
public:
    towar() {
        opis = "";
        cena = 0.0;
        liczba = 0;
    }
    towar( towar & t ) {
        opis = t.opis;
        cena = t.cena;
        liczba = t.liczba;
    }
   
    ~towar() {
        delete[] opis;
        cout << "Destruktor" << endl;
    }
    friend ostream & operator <<( ostream & os, const towar & t )
    {
        os << "Marka: " << t.opis << endl;
        os << "Numer silnika: " << t.cena << endl;
        os << "Przebieg: " << t.liczba << endl;
    }
   
   
};

int main() {
    towar a( "a" );
   
   
   
   
   
   
   
    return 0;
}
P-107964
DejaVu
» 2014-04-09 19:53:08
Źle tworzysz obiekt - nie masz konstruktora, którego pierwszym argumentem byłby const char*.
P-107965
Awantura
Temat założony przez niniejszego użytkownika
» 2014-04-09 21:33:16
Git, poprawiłem, kompiluje się, ale nie wyświetla, tego co wprowadze w
C/C++
int main() {
    towar a( "ala", 2, 4.0 );
    cout << a;
   
    return 0;
}


A oto cały kod:
C/C++
#include<iostream>
#include <cstring>

using namespace std;

class towar {
private:
    char * opis;
    float cena;
    int liczba;
   
public:
    towar( const char *, int, float ) {
        opis = "";
        liczba = 0;
        cena = 0.0;
    }
   
    towar( towar & t ) {
        opis = t.opis;
        cena = t.cena;
        liczba = t.liczba;
    }
   
    ~towar() {
        delete[] opis;
        cout << "Destruktor" << endl;
    }
    friend ostream & operator <<( ostream & os, const towar & t )
    {
        os << "Opis: " << t.opis << endl;
        os << "Cena: " << t.cena << endl;
        os << "Ilosc sztuk: " << t.liczba << endl;
    }
   
   
};

int main() {
    towar a( "ala", 2, 4.0 );
    cout << a;
   
    return 0;
}

P-107975
pekfos
» 2014-04-09 21:35:41
Pewnie dlatego, że nigdzie nie używasz tych wartości..
P-107976
Awantura
Temat założony przez niniejszego użytkownika
» 2014-04-09 21:36:40
Ale czy nie powinno ich wyświetlić ?
P-107977
pekfos
» 2014-04-09 21:38:12
Niby dlaczego? Nigdzie nie używasz tych wartości..
P-107978
DejaVu
» 2014-04-09 21:38:50
Moim zdaniem powinieneś najpierw nauczyć się programowania strukturalnego - patrz: » Kurs C++ » Poziom 2Funkcje - pierwsze starcie lekcja. pekfos napisał Ci co jest źle.
P-107979
« 1 »
  Strona 1 z 1