为什么我无法将源文件连接到头文件?

时间:2016-10-09 10:41:33

标签: c++

我试图制作一个名为Paitent_info.h的标题,你可以在这里看到:

#ifdef GUARD_Paitent_info
#define GUARD_Paitent_info

#include <iostream>
#include <string>
#include <vector>

struct Paitent_info {
    std::string name;
    std::vector<double> tem;
};

bool compare(const Paitent_info&, const Paitent_info&);
std::istream& read(std::istream&, Paitent_info&);
std::istream& read_tem(std::istream&, std::vector<double>&);
#endif

这里是Paitent_info.cpp:

#include "Paitent_info.h"

using std::istream; using std::vector;

bool compare(const Paitent_info& x, const Paitent_info& y)
{
    return x.name < y.name;
}


istream& read(istream& ip, Paitent_info& p)
{ // do something
    return ip;
}

istream& read_tem(istream& in, vector<double>& tem)
{ // do something
    return in;
}

我从此代码中收到了很多错误消息:

  1. std :: istream和std :: vector尚未声明
  2. Paitent_info没有命名类型。
  3. 请求'x'和&#39; y&#39;中的成员'name',这是非类型'const int'。
  4. istream没有命名类型。
  5. 我不知道为什么我收到所有这些错误信息,请帮助我。

1 个答案:

答案 0 :(得分:6)

你在头球卫士中输了一个错字:

#ifdef GUARD_Paitent_info

应该是

#ifndef GUARD_Paitent_info

目前,警卫仅在已包含标题时才会包含标题。想一想;)。