• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

class - friend - unresolved external symbol - błąd

+1 głos
428 wizyt
pytanie zadane 1 lipca 2015 w C i C++ przez Varimatras Nowicjusz (170 p.)

Witam

Na początku chciałbym przywitać się ze wszystkimi jako że jest to mój pierwszy post na tej stronie.

Zmagam się problemem. Internet sugeruje mi uparcie że najbardziej prawdopodobnym powodem jest złe połączenie (podlinkowanie, chyba tak się to nazywa)  plików. Tylko że ja wszystko piszę na jednym pliku. Inna wersja idzie w stronę tego że mogłem zapomnieć coś zdefiniować ale nie widzę niczego takiego. Czy ktoś mógłby powiedzieć mi gdzie jest błąd lub choć przybliżyć na czym ten błąd może polegać?

Treść błędu jest następująca: "Error    1    error LNK2019: unresolved external symbol "public: __thiscall point::point(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,double,double)" (??0point@@QAE@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@NN@Z) referenced in function _main    c:\Users\XXX\documents\visual studio 2013\Projects\Project17\Project17\Source.obj    Project17"

Kod do programu (program jest samodzielnie napisaną lekcją 4, z domieszkami 3, z obiektowego programowania Pana Mirosława Zelenta):

http://www.wklej.org/id/1749162/

Przyznaje że sam błąd wygląda tak zawile że ciężko mi coś wyłapać. W kodzie chodzi mi przede wszystkim o class point i rectangle.

Z góry dziękuje za pomoc i pozdrawiam.

3 odpowiedzi

0 głosów
odpowiedź 1 lipca 2015 przez DiZZie Gaduła (3,170 p.)

Wydaje mi się, że to przez brak ciała konstruktorów klas Point oraz Rectangle. Jeżeli chcesz żeby konstruktor nic nie robił wystarczy napisać

point(string namePoint = "A", double x = 0, double y = 0){}

zamiast dawać średnik na końcu deklaracji ;)

0 głosów
odpowiedź 1 lipca 2015 przez Radfler VIP (101,030 p.)
Musisz napisać ciała tych konstruktorów (funkcji)! Mogą być puste (po prostu '{ }'). Bez tego kompilator nie wie co robi funkcja. Poza tym zamiast pisać 'cuboid::' lepiej napisać 'this->' :)
0 głosów
odpowiedź 3 lipca 2015 przez Varimatras Nowicjusz (170 p.)
Dziękuje za odpowiedzi, odpisywałem wcześniej ale wiadomość chyba się nie zapisała. Już wiem jak wszystko się robi, jeszcze tylko musze się coś dowiedzieć o tym 'this->' ale to w swoim czasie :) W każdym razie mój konstruktor działa aż się serce raduje :)

Podobne pytania

0 głosów
2 odpowiedzi 390 wizyt
pytanie zadane 13 maja 2015 w C i C++ przez Ins0mniaC Obywatel (1,400 p.)
+8 głosów
1 odpowiedź 1,157 wizyt
pytanie zadane 1 listopada 2016 w Nasze poradniki przez niezalogowany
0 głosów
2 odpowiedzi 501 wizyt
pytanie zadane 14 października 2015 w C i C++ przez 0xf Dyskutant (8,180 p.)

93,777 zapytań

142,736 odpowiedzi

323,388 komentarzy

63,381 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...