C ++ unkown类型错误

时间:2017-04-26 02:06:24

标签: c++

由于某种原因,我的main.cpp无法识别通过link.h文件包含并在link.cpp中定义的类型链接。是否有可能makefile没有正确链接它们,否则我应该在link.cpp和main.cpp中包含link.h并且两者都可以将Link识别为类。

的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";
}
}

1 个答案:

答案 0 :(得分:-2)

我建议您尝试使用双引号来包含link.h,而不是使用&lt;和&gt ;;使用这些指示编译器首先查找文件到系统默认包括,而双引号将使它看起来在你当前的目录中,我假设你已经把它放在那里。

因此,只要您引用标题,您的代码就会更改为

#include "link.h"