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

tes*_* me -1 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
Run Code Online (Sandbox Code Playgroud)

这是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;
}
Run Code Online (Sandbox Code Playgroud)

我收到了来自此代码的许多错误消息:

  1. 尚未声明std :: istream和std :: vector
  2. Paitent_info没有命名类型.
  3. 请求'x'和'y'中的成员'name',它是非类型'const int'.
  4. istream没有命名类型.

我不知道为什么我收到所有这些错误信息,请帮助我.

for*_*818 6

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

#ifdef GUARD_Paitent_info
Run Code Online (Sandbox Code Playgroud)

应该

#ifndef GUARD_Paitent_info
Run Code Online (Sandbox Code Playgroud)

目前,警卫只有在已经包含标题时才会包含标题.这点考虑一下吧 ;).