Typ parametu wywołania konstruktora uważany za błędny.

0

Witam!
Problem wygląda następująco: Utworzyłem klasę w której konstruktorze jako parametr ustawiłem char, jednak szybko się zreflektowałem ze powinien być string i go zmieniłem. Jednak VS nadal twierdzi ze tam jest char i sygnalizuje błąd (bo parametry są string). Co mam teraz zrobić?

0

KOD POKAŻ.

0
//klasa
class tasma_wyjsciowa : public tasma
{
public: String wartosc;
	tasma_wyjsciowa(String w) : tasma(w){}; 
};

//wywolanie
 tasma_wejsciowa *tab [18];
 int i = 0;
 if (textBox1->Text != " ") {tab[i] =new tasma_wejsciowa(textBox1->Text);i++;}
0

A jak wygląda klasa tasma?

0
class tasma
{
	public String wartosc;
	
public: 
	tasma(String w)
	{
		wartosc = w;
	}
}; 
0

Nie wiem poco ci składowa:
String wartosc w klase tasma_wyjsciowa;
Ale to powinno działać:

  1. upewnij się że masz dokładnie tak napisano jak podałeś w poście.
  2. upewnij się że kompilujesz ten właśnie kod a nie jakiś inny.
  3. upewnij się czy pierwszy błąd jest właśnie w tym miejscu co wskazałeś.
0
  1. Na 100% (kopiowałem bezpośrednio z IDE).
  2. A mógłbym jakiś inny? (mam tylko jedną taką klasę w programie/projekcie)
  3. Błąd jest dokładnie w linijce:
 if (textBox1->Text != " ") {tab[i] =new tasma_wejsciowa(textBox1->Text);i++;} 

brzmi on dokładnie:
error C2664: 'tasma_wejsciowa::tasma_wejsciowa(char)' : cannot convert parameter 1 from 'System::String ^' to 'char'

To jest jedyny problem jaki sygnalizuje kompilator.

0

Czy deklaracja klasy jest w pliku z rozszerzeniem h?

0

Tak, ma to znaczenie?

0
  1. upewnij się że kompilujesz ten właśnie kod a nie jakiś inny.
    Najprawdopodobniej edytujesz nie ten plik co dołączasz.
0

Jeśli chodzi o pliki projektu to mam trzy:
klasy.h - zdefiniowane wszystkie klasy jakie są mi potrzebne min. tasma_wejsciowa
form1.h - plik dotyczący trybu okienkowego (w nim w metodzie Button1_Click wywołuję konstruktor)
sample.cpp - plik w którym program realnie się odpala.

Z tego co zauważyłem, kompilowane są wszystkie te pliki ale pewności nie mam.

0

Skoro nie potrafisz sprawdzić skąd twój program bierze definicje klasy to przeszukaj na dysku pliki z rozszerzeniami *.c *.cpp *.h *.hpp zawierające tekst "tasma_wejsciowa", i sprawdź każdy znaleziony.

0

Kurcze, no wiem skąd bierze definicje klasy, napisałem wszystko w poprzednim poście.

1 użytkowników online, w tym zalogowanych: 0, gości: 1