2016-10-09 96 views
-1

我試圖創建一個名爲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和性病::矢量尚未聲明
  2. Paitent_info沒有指定類型。
  3. 請求構件「名稱」中的「X」和「y」,其是非類類型「const int的」的。
  4. 的IStream沒有指定類型。

我不知道爲什麼我得到所有這些錯誤信息,請幫助我。

+5

順便說一句這是病人不paitent – user463035818

+4

你包括後衛應該IFNDEF不IFDEF。 – user1937198

+1

在標題中使用'#pragma once'而不是'#ifndef'後衛 – Nikita

回答

6

你有在頭文件保護一個錯字:

#ifdef GUARD_Paitent_info 

應該

#ifndef GUARD_Paitent_info 

目前保護導致包含頭只有已經被列入它。這點考慮一下吧 ;)。

+0

奧普斯我沒注意到,謝謝:) –

相關問題