在我学习C ++的冒险中,我无法将类和标题链接在一起!我相信这种语法是正确的,但收到错误:
对'foo :: bar()'
的未定义引用
下面是我的代码,我希望我正确地将它转换为foobarbazian!:
的main.cpp
#include "header.h"
int main()
{
foo baz;
baz.bar();
return 0;
}
header.h
#ifndef __HEADER_H_INCLUDED__
#define __HEADER_H_INCLUDED__
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class foo {
public:
void bar();
};
#endif
baz.cpp
#include "header.h"
void foo::bar () {
cout << "Whose flow? Overflow!" << endl;
return;
}
任何想法有什么不对?谢谢!
答案 0 :(得分:4)
编译时未包含baz.cpp
文件。编译时需要包含所有源文件。例如:
g++ -Wall -std=c++11 main.cpp baz.cpp
执行此操作后,您将收到另一个错误:
baz.cpp:在成员函数'void foo :: bar()'中:baz.cpp:6:12:错误:
带有值的return语句,函数返回'void'
因为您尝试将值返回到void
函数。
从return true;
函数定义中删除foo::bar()
语句。