2017-04-26 17 views
-1

何らかの理由で、私のmain.cppがlink.hファイルに含まれlink.cppで定義されているタイプのLinkを認識していません。 makefileが適切にリンクしていない可能性があります。それ以外の場合は、link.cとmain.cppの両方にlink.hを含める必要があります。両方ともリンクをクラスとして認識できます。C++の不明なタイプのエラー

main.cppに

#include <iostream> 
#include <link.h> 

int main (int argc, const char * argv[]) { 

int i = 10; 
while(i >= 0) { 

    i--; 
}  

Link test = new Link(); 

std::cout << "Hello, World!2\n"; 
return 42; 
} 

link.h

#ifndef LINK_H 
#define LINK_H 
#include <string> 
using namespace std; 

class Link { 
private: 
    string * value; 
    Link * next; 
public: 
    Link(Link * nextLink, string * stringValue); 
    ~Link(); 

} 
#endif 

link.cpp

#include <link.h> 

Link::Link(Link * nextLink, string * stringValue) { 

this.next = nextLink; 
this.value = stringValue; 
} 

Link::~Link() { 

delete value; 
} 

Link * Link::getNext() { 

return next; 
} 

string * Link::getString() { 

return value; 
} 

void Link::printAll() { 

if (next != NULL) { 
    cout << value << "\n" << next->printAll(); 
} else { 
    cout << value << "\n"; 
} 
} 
+0

どのようにあなたがあなたのメイクファイルでそれらをリンクしていますか? –

+3

リンククラスにセミコロンを付けることができません。 –

答えて

-2

私はあなたの代わりに<との、二重引用符を使用してlink.h含めてみてください示唆します>;これらを使用すると、ファイルをシステムのデフォルトのインクルードに最初に検索するようにコンパイラに指示しますが、二重引用符で囲むと、カレントディレクトリに置かれます。

あなたのヘッダーを参照どこだから、あなたのコードは、に変更します

#include "link.h" 
関連する問題