C++ - Problem z konstruktorem.

2012-06-17 20:49
ACslashDC
0

Witam,
mam taki mały kod:
main

#include <iostream>
#include "niam.h"
using namespace std;

int main()
{
   a* abc = new a("asd");
    return 0;
}

niam.h

#ifndef NIAM_H_INCLUDED
#define NIAM_H_INCLUDED
#include <string>
#include <iostream>
class a
{
  public:
  a(std::string str);
};

#endif // NIAM_H_INCLUDED
niam
#include "niam.h"

a::a(std::string str)
{
    cout<<str.c_str;
}

Napisałem go na podstawie tego tutorialu:http://pl.wikibooks.org/wiki/C++/Konstruktor_i_destruktor
Lecz niestety pojawia się następujący błąd w build log:
...\main.cpp|7|undefined reference toa::a(std::string)'|`
Więc o co robię źle?
Zapewne zrobiłem jakiś głupi błąd w kodzie, lecz każdy od czegoś zaczynał i proszę o wyrozumiałość. :]

Pozostało 580 znaków

2012-06-17 21:46
1

W niam.cpp jest błąd. cout<<str.c_str; co to ma być? std::cout << str; powinno być. c_str to po pierwsze metoda a po drugie jest niepotrzebna. Poza tym brakuje przestrzeni nazw.

Ponieważ jest tam błąd plik się nie kompiluje i jest błąd linkowania.


"(...) otherwise, the behavior is undefined".
edytowany 1x, ostatnio: Endrju, 2012-06-17 21:46

Pozostało 580 znaków

2012-06-17 21:54
ACslashDC
0

Niestety, ale po poprawieniu na std::cout << str nadal jest dokładnie ten sam błąd.

Pozostało 580 znaków

2012-06-17 22:43
0

Jak to kompilujesz? Nie ma innych komunikatów?


"(...) otherwise, the behavior is undefined".

Pozostało 580 znaków

2012-06-17 23:05
ACslashDC
0

Używam środowiska Code blocks, a kompiluje w wersji debug.
W projekcie są dodane wszystkie 3 pliki.
Nie ma żadnego innte błędu. Tu jest cały build log:

obj\Debug\main.o||In function `main':|
<...>\main.cpp|7|undefined reference to `a::a(std::string)'|
||=== Build finished: 1 errors, 0 warnings ===|
A jak zrobisz clean i build? - Endrju 2012-06-17 23:12

Pozostało 580 znaków

2012-06-17 23:11
0

U mnie w C::B przy takim niam.h się kompiluje i działa:

#include "niam.h"

a::a(std::string str)
{
    std::cout<<str;
}

Jestes pewien ze wsio masz w 1 folderze? :)

edytowany 2x, ostatnio: kaboom, 2012-06-17 23:12

Pozostało 580 znaków

2012-06-17 23:13
0

Czy dołożyłeś niam.cpp do projektu?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2012-06-17 23:16
ACslashDC
0

Tak, jest dołączony na 100%, ponieważ mam go na liście.
Wszystkie te pliki są w jednym folderze.

Clean i build zrobiłeś? Nie odpowiedziałeś. Ten log z kompilacji co dałeś pokazuje, że plik niam.cpp nie jest kompilowany. (Napisałeś "cały") - Endrju 2012-06-17 23:26

Pozostało 580 znaków

2012-06-17 23:17
0

A moze stworz od nowa projekt, skopiuj te kody do nowo utworzonych plikow i sprawdz? Powinno wsio działać. ;D

Pozostało 580 znaków

2012-06-17 23:35
ACslashDC
0

Stworzyłem od nowa projekt i nadal to samo.

Pozostało 580 znaków

2012-06-17 23:46
0

@ACslashDC, może wklej jeszcze raz co aktualnie masz w plikach. Bo z tego co opowiadasz to jakieś cuda na kiju.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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