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

Problem z konstruktorem klasy. Błąd: " cannot convert parameter (...) from(...)"

Ostatnio zmodyfikowano 2011-07-23 22:55
Autor Wiadomość
diego997
Temat założony przez niniejszego użytkownika
Problem z konstruktorem klasy. Błąd: " cannot convert parameter (...) from(...)"
» 2011-07-23 21:58:25
C/C++
//klasa
class poziom_1
{
   
public:
    poziom_1( Enemy * wrog[ 61 ] );
};
//main

poziom_1 poziom( & Przeciwnik );

Wyskakuje mi błąd

'poziom_1::poziom_1(Enemy *[])' : cannot convert parameter 1 from 'Enemy *' to 'Enemy *[]'

P-36761
akwes
» 2011-07-23 22:28:45
Tablica to wskaźnik.

A dokładniej to nazwa tablicy jest wskaźnikiem jej pierwszego elementu ;p

Więc int ala[] = int * ala;
a co za tym idzie
int * ala[] = int ** ala;

W jednym z moich programów doszedłem to moja_klasa *** cos; zostało to opatrzone komentarzem //generał

Zresztą odbierasz tablicę a wysyłasz jeden element :P ?
P-36765
diego997
Temat założony przez niniejszego użytkownika
» 2011-07-23 22:38:01
Definicja przeciwnika jest taka:

Enemy Przeciwnik[61];
P-36770
Thud
» 2011-07-23 22:43:29
<wywalić>
P-36773
akwes
» 2011-07-23 22:48:31
Bo wysyłasz adres wskaźnika(Przeciwnik to wskaźnik do pierwszego elementu tablicy) a chcesz odebrać wskaźnik na tablicę.


Więc albo
C/C++
Enemy * Przeciwnik[ 61 ];

albo
C/C++
poziom_1( Enemy wrog[ 61 ] );

Przy czym obie wersje wymagają dużych zmian. Bo druga jest nieakceptowalna bo zrobi kopię tablicy, a pierwsza wersja wymaga utworzenia konstruktora dla przeciwnika.
P-36774
Thud
» 2011-07-23 22:53:14
Mój przekształcony (działający) kod.
C/C++
#include <iostream>
#include <string>
using namespace std;
class Enemy
{
    std::string String;
public:
    std::string ret() { return String; }
    Enemy() { String = "Haha"; }
};
class poziom_1
{
   
public:
    poziom_1( Enemy * wrog ) { cout <<( *( wrog + 1 ) ).ret() << endl; }
};
//main
int main()
{
    Enemy Przeciwnik[ 61 ];
    poziom_1 poziom( Przeciwnik );
}

Musiałem wprowadzić kilka zmian, ale chyba o to chodziło. Poczytaj lekcję o wskaźnikach.
P-36775
diego997
Temat założony przez niniejszego użytkownika
» 2011-07-23 22:55:38
Dzięki wam już działa
P-36776
« 1 »
  Strona 1 z 1