我有一些C++代码。
Bird.h
class Bird
{
std::string s;
static int i;
public:
Bird();
~Bird();
friend std::ostream& operator<<(std::ostream& os, Bird& b);
};
Bird.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
发送给编译器。 - Pacha