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 » |