C ++:类和头文件

时间:2017-07-11 00:37:51

标签: c++ class

在我学习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;
}

任何想法有什么不对?谢谢!

1 个答案:

答案 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()语句。