C++ - Problem z konstruktorem.

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ść. :]

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.

0

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

0

Jak to kompilujesz? Nie ma innych komunikatów?

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 ===|
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? :)

0

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

0

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

0

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

0

Stworzyłem od nowa projekt i nadal to samo.

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