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

Szablony klas - błąd przy tworzeniu obiektu (template argument list)

Ostatnio zmodyfikowano 2014-09-29 20:50
Autor Wiadomość
ubidragon
Temat założony przez niniejszego użytkownika
» 2014-09-29 16:30:36
Faktycznie, dzięki wielkie, spojrzałem na wsze odpowiedzi o rozjaśniło mi się to. Zapomniałem że przy tworzeniu obiektu w stanie domyślnym parametrów nie podaje się, a ja z przyzwyczajenia dałem parametry jak w funkcji.

C/C++
konto < int > test;
dochod < int > op1( "opis", 100 );
test.dodaj( op1 );

Poprzedni błąd zniknął, niestety pojawił się nowy:

error C2664: 'konto<typ>::dodaj' : cannot convert parameter 1 from 'dochod<typ>' to 'int'

konto stworzyłem do typu int, operacja została zrobiona z kwotą int, niby typy się zgadzają.
P-117756
pekfos
» 2014-09-29 17:17:54
niby typy się zgadzają.
Niby jak? Masz int i dochod<int>.
P-117757
ubidragon
Temat założony przez niniejszego użytkownika
» 2014-09-29 17:41:28
Przed chwilą wpadłem na pewien pomysł, ale nie wiem czy dobrze kombinuję.

Jakby w funkcji dodaj stworzyć osobny typ szablonowy dla przyjmowanej jako argument operacji?

EDIT: Chyba jednak nie, teraz wysypuje się mnóstwo błędów bo wszędzie trzeba uwzględnić drugi argument szablonu. Nie wiem w jaki sposób rozwiązać problem, żeby to dodawanie działało.

Kluczowe jest tu dla mnie odpowiedź na pytanie W jaki sposób móc przekazać dochod<int> do funkcji dodaj?
P-117758
maly
» 2014-09-29 20:03:47
Kluczowe jest tu dla mnie odpowiedź na pytanie W jaki sposób móc przekazać dochod<int> do funkcji dodaj?
Kluczowe jest tu dla mnie odpowiedź na pytanie Czy umiesz to w ogóle napisać bez szablonów?
P-117760
Monika90
» 2014-09-29 20:50:07
Ja nie za bardzo widzę sens w tym co próbujesz tu zrobić, ale jak chcesz to masz:
C/C++
template < typename typ >
class konto
{
public:
    template < template < typename > class Operacja >
    void dodaj( const Operacja < typ >& op )
    {
    }
};
P-117762
1 2 « 3 »
Poprzednia strona Strona 3 z 3