У меня есть код на C++.
Птица.ч
class Bird
{
std::string s;
static int i;
public:
Bird();
~Bird();
friend std::ostream& operator<<(std::ostream& os, Bird& b);
};
Птица.cpp
#include <iostream>
#include <sstream>
#include "Bird.h"
Bird::Bird()
{
++i;
std::stringstream ss;
ss<<"Bird#";
ss<<i;
s = ss.str();
}
Bird::~Bird()
{
i--;
}
std::ostream& operator<<(std::ostream& os, Bird& b)
{
const char* chr = (b.s).c_str();
return os << chr << std::endl;
}
Main.cpp
#include <iostream>
#include <sstream>
#include "Bird.h"
int Bird::i=0;
int main()
{
Bird b();
std::cout << b;
}
Я получаю следующую ошибку:
Main.obj : error LNK2019: unresolved external symbol "class Bird __cdecl b(void)" (?b@@YA?AVBird@@XZ) referenced in function _main
Но если я создам Bird b;
, все в порядке. Что я могу сделать?
Bird.cpp
компилятору. - person Pacha   schedule 23.12.2013