C ++如何解决标头中未定义的名称空间?

丢失

因此,我目前正在为正在进行的较大项目制作一个小型原型,而我已经完全陷入其中。我对C ++相当陌生,并且从未使用过标头或名称空间。问题是,当我尝试使用创建的名称空间时,它会完全失败,并且编译器(clang)返回未定义。

#include <iostream>
#include "bark.hpp"

using namespace bark;

int main() {
    bark::woof();
}

头文件:

#pragma once
#ifndef FUNCTIONS_HPP
#define FUNCTIONS_HPP

namespace bark {
    void woof();
}

#endif

文件功能:

#include <iostream>
#include "bark.hpp"

void woof() {
    std::cout << std::endl << "woof" << std::endl;
}
慈济

在实现文件中,此定义:

void woof() 
{
 // ...
}

woof在全局名称空间中定义一个函数因此,当您拨打电话时:

bark::woof();

main函数中,没有bark::woof定义,链接器将拒绝链接程序。


要正确定义wooffrom命名空间bark,您需要对其进行限定:

void bark::woof() 
{
 // ...
}

否则引入名称空间bark,并在内部定义它:

namespace bark
{
  void woof() 
  {
    // ...
  } 
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

与使用名称空间的外部库链接时,如何解决C中的未定义引用?

在C ++的标头中使用名称空间时对错误的未定义引用

如何解决C中的未定义结构?

C ++标头中的名称空间

C ++标头中extern变量的未定义引用

C ++-通过宏定义的名称空间-如何在标头中使用它

标准标头中的C编译器错误-未定义的C ++定义

如何解决对自己的 C++ 成员函数的未定义引用?

用C编译时如何解决“未定义引用”?

'TypeInfo <char>(char *)'未定义,但在C ++ 11之前可用;发生了什么变化,如何解决该错误?

C标头中的一个函数的“未定义的引用”,而另一个函数中的“未定义的引用”

C++ 未定义的命名空间

如何解决“ NameError:名称'model'未定义”错误?

如何解决“ NameError名称'changePlaying'未定义

如何解决未定义的名称错误?

如何解决“名称'bot'未定义”错误?

如何解决注意:未定义的索引:第21行的C:\ xampp \ htdocs \ invmgt \ manufactured_goods \ change.php中的id

C ++标头中的“使用命名空间”

如何解决“对象未定义”

如何解决“模块未定义”。

如何解决未定义的路由

使用命名空间C ++的未定义引用

如何使C ++中的值未定义?

我该如何解决NameError:名称'randomResponce'未定义

我如何解决此问题“ NameError:未定义名称'f'”这是我的功能

如何解决以下错误“无法读取未定义的属性‘名称’”?

如何解决这个问题?NameError:未定义名称“root”

pytorch + jupyter笔记本未定义名称“ _C”

如何解决“无法读取未定义的属性'定义'”?