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

Funkcja zaprzyjaźniona nie konwertuje argumentu

Ostatnio zmodyfikowano 2014-04-04 11:13
Autor Wiadomość
kitsss
Temat założony przez niniejszego użytkownika
Funkcja zaprzyjaźniona nie konwertuje argumentu
» 2014-04-04 10:59:00
C/C++
#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).
P-107677
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.
P-107678
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 ;)
P-107679
« 1 »
  Strona 1 z 1