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ć?
KOD POKAŻ.
//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++;}
A jak wygląda klasa tasma?
class tasma
{
public String wartosc;
public:
tasma(String w)
{
wartosc = w;
}
};
Nie wiem poco ci składowa:
String wartosc w klase tasma_wyjsciowa;
Ale to powinno działać:
- upewnij się że masz dokładnie tak napisano jak podałeś w poście.
- upewnij się że kompilujesz ten właśnie kod a nie jakiś inny.
- upewnij się czy pierwszy błąd jest właśnie w tym miejscu co wskazałeś.
- Na 100% (kopiowałem bezpośrednio z IDE).
- A mógłbym jakiś inny? (mam tylko jedną taką klasę w programie/projekcie)
- 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.
Czy deklaracja klasy jest w pliku z rozszerzeniem h?
Tak, ma to znaczenie?
- upewnij się że kompilujesz ten właśnie kod a nie jakiś inny.
Najprawdopodobniej edytujesz nie ten plik co dołączasz.
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.
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.
Kurcze, no wiem skąd bierze definicje klasy, napisałem wszystko w poprzednim poście.