无法访问另一个标头中包含的标头?

Lai*_*uan 0 c++ header

我有三个.cpp文件和标题.

    //a.cpp
#include "a.h"
#include "b.h"
void A::foo() {
    C c;
    c.bar();
}


    //a.h
#include "b.h"
class A {
public:
    void foo();
};


    //b.h
#include "c.h"

    //c.h
#pragma once    
class C {
public:
    void bar();
};


    //c.cpp
#include "c.h"
void C::bar() {}

    //other files are ignored
Run Code Online (Sandbox Code Playgroud)

但是当我编译它们时,我收到了这个错误:

a.cpp:(.text+0xb1): undefined reference to `C::bar()`
Run Code Online (Sandbox Code Playgroud)

我已经包括c.h通过b.h?为什么不起作用?

Iro*_*san 7

未定义的引用是链接器错误,您的代码正在编译.确保你正在链接a.obj,b.obj并且c.obj.