Перегрузка на << как ошибка cout

Я пытаюсь создать класс, подобный std::cout, однако с цветным выводом. Идея в том, чтобы вызвать colorstream, но когда я перегружаю оператор << выдает ошибку.

Коды ниже:

main.cpp

#include <colorstream/colorstream.hpp>

int main ( int argc, char **argv )
{
cpk::colorstream test;
test << "Hello World";

return 0;
}

colorstream/colorstream.hpp

#include <string>

#ifndef CPK_COLORSTREAM_HPP
#define CPK_COLORSTREAM_HPP

namespace cpk
{
    class colorstream
    {
    public:
        colorstream ( ) { };
        colorstream operator<<( std::string n );
    };
}

#endif // #ifndef CPK_COLORSTREAM_HPP

colorstream/colorstream.cpp

#include <string>
#include <iostream>

/**
 * CPK Color Stream Header
 */
#include <colorstream/colorstream.hpp>

cpk::colorstream::colorstream operator<<( std::string n )
{
    std::cout << n << std::endl;
}

Это первый раз, когда я пытаюсь перегрузить операторы, так что, пожалуйста, помогите мне и если я могу объяснить свою ошибку.

Спасибо, Бруно Алано

@edit Ошибка:

CMakeFiles/cpk.dir/source/cpk.cpp.o: In function `main':
cpk.cpp:(.text+0x45): undefined reference to `cpk::colorstream::operator<<(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
collect2: ld returned 1 exit status
make[2]: ** [cpk] Erro 1
make[1]: ** [CMakeFiles/cpk.dir/all] Erro 2
make: ** [all] Erro 2
0
задан Bruno Alano 5 January 2012 в 22:53
поделиться