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

Zwracanie tablicy przez funkcje.

Object Storage Arubacloud
0 głosów
1,087 wizyt
pytanie zadane 25 marca 2017 w C i C++ przez Fenix7 Nowicjusz (210 p.)

Mam problem ze zwróceniem tablicy przez funkcje.

Cwaluta.h:

public:
inline char* DajWalute();

private:
char Waluta[4];

Cwaluta.cpp

inline char* Cwaluta::DajWalute()
{
    return Waluta;
}

 

Wcześniej kompilator protestował coś przy samym ciele funkcji. W międzyczasie robiłem inne rzeczy i przestał. Teraz jednak pojawia się błąd kiedy wywołuje tę funkcje w mainie. W drugiej klasie w tym programie mam ten sam problem przy dynamicznej tablicy, Większość swojego programowego życia spędziłem w C, więc niewykluczone, że to jakiś banalny błąd, którego jednak nie potrafie wyłapać. Będe wdzięczny za pomoc :)

1 odpowiedź

0 głosów
odpowiedź 25 marca 2017 przez j23 Mędrzec (194,920 p.)
Ech, jak kompilator wyrzuca jakieś błędy, to podaj je (chociaż część, jeśli jest ich dużo).
komentarz 25 marca 2017 przez Fenix7 Nowicjusz (210 p.)
Nie dużo, ale mało konkretne dlatego też ich nie podałem. Chociaż może rzeczywiście powinienem. Prosze:

Error    LNK2019    unresolved external symbol "public: char * __thiscall Cliczba::DajWS(void)" (?DajWS@Cliczba@@QAEPADXZ) referenced in function _main

jest inna nazwa bo to akurat dla tej drugiej funkcji z tablicą dynamiczną ale błąd ten sam
komentarz 25 marca 2017 przez j23 Mędrzec (194,920 p.)

Błąd jest jak najbardziej konkretny: konsolidator nie może znaleźć implementacji metody Cliczba::DajWS. Jak widać nie ma to związku z fragmentem kodu, który podałeś.

komentarz 26 marca 2017 przez Fenix7 Nowicjusz (210 p.)
Przeczytaj jeszcze raz mój komentarz. Błąd akurat jest taki bo miałem wywołaną w kodzie drugą identyczną prawie funkcje. Dla dajWalute błąd jest taki sam(z analogicznymi nazwami)
komentarz 26 marca 2017 przez j23 Mędrzec (194,920 p.)
Jak zwał, tak zwał, istota błędu jest taka sama i nie ma związku z tablicą i jej zwracaniem. Dodałeś plik źródłowy (.cpp) do projektu?
komentarz 28 marca 2017 przez Fenix7 Nowicjusz (210 p.)
Tak. Wszystko dodane. Metodą prób i błędów odkryłem, że po usunięciu "inline" przy deklaracji wszystko działa. Co moge robić źle?
komentarz 29 marca 2017 przez j23 Mędrzec (194,920 p.)

Daj definicję (implementację) metody inline do pliku .h. Rzecz w tym, że implementacja funkcji inline musi być widoczna dla kompilatora w każdym miejscu, w którym jest użyta/wywołana. U Ciebie implementacja jest w pliku źródłowym, więc wywołanie funkcji w innej jednostce kompilacji powodował błąd unresolved external ...

 

P.S. metody zdefiniowane wewnątrz definicji klasy są z automatu inline, więc nawet nie musisz używać tego specyfikatora.

Podobne pytania

+1 głos
2 odpowiedzi 273 wizyt
pytanie zadane 25 marca 2021 w C i C++ przez saju13013 Nowicjusz (230 p.)
0 głosów
1 odpowiedź 239 wizyt
pytanie zadane 2 maja 2017 w C i C++ przez Sensej Użytkownik (540 p.)
0 głosów
2 odpowiedzi 3,715 wizyt
pytanie zadane 17 listopada 2016 w C i C++ przez intensick Początkujący (420 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...