Funkcja zaprzyjaźniona nie konwertuje argumentu
Ostatnio zmodyfikowano 2014-04-04 11:13
kitsss Temat założony przez niniejszego użytkownika |
Funkcja zaprzyjaźniona nie konwertuje argumentu » 2014-04-04 10:59:00 #include <iostream> #include <cstdlib>
using namespace std;
class popek { int dana1; popek() { dana1 = 13; } friend void funkcja( popek obiekcik ); };
void funkcja( popek obiekcik ) { cout << obiekcik.dana1 << endl; }
int main() { popek obiekt(); funkcja( obiekt ); system( "PAUSE" ); return 0; } error: could not convert 'obiekt' from 'popek (*)()' to 'popek' Sądzę też, że przy wywołaniu konstruktora domyślnego które ma miejsce w momencie stworzenia obiektu, nie powinienem przy tworzeniu tego obiektu dawać puste nawiasy, czyli: popek obiekt; Ale wtedy wyskakuje mi więcej błędów, które mowia o tym, ze konstruktor domyslny zostal zdefiniowany w sektorze prywatnym (a przeciez konstruktor moze byc gdziekolwiek w klasie, lub z operatorami zasiegu poza nia). |
|
alixir |
» 2014-04-04 11:08:11 W sumie to sam sobie odpowiedziałeś, ale dla pewności: Po 1. Czy aby na pewno popek obiekt(); te nawiasy powinny tu być? Po 2. Konstruktor musi być public a nie private. |
|
kitsss Temat założony przez niniejszego użytkownika |
» 2014-04-04 11:13:17 Rzeczywiście, nawiasy powinny być wtedy, gdy konstruktor przyjmowałby jakiś argument. Teraz po sprawdzeniu racja, że konstruktory powinny być publiczne. Dzięki wielkie za pomoc ;) |
|
« 1 » |