命名空间中类的前置声明方法

先介绍下背景,开发了一个底层库(带命名空间),调用这个底层库时,需要将该类放入成员函数,但是不想包含该头文件,详细如下:

libA库 AReader.h
namespace libA
{
  class AReader
{ 
...
};
...
}

上层程序Reader.h
class libA::AReader;

class A
{
  libA::AReader reader_;
}

编译会报warnning:

declaration does not declare anything [-fpermissive]

正确的前置声明方法是:

上层程序Reader.h
namespace libA
{
  class AReader;
}

上层程序Reader.cpp
include "AReader.h"
...

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # 写在开头 要点1:编译时,必须要有声明。链接时,必须有定义。 编译器需要根据声明来进行语法检查,验证使用是否有...
    Tenloy阅读 1,288评论 0 2
  • 命名空间 对长期从事objective-c语言开发的我们来说,命名空间可能是一个比较陌生的名称。 “命名空间”,简...
    SevenPa阅读 1,178评论 1 9
  • 前言 Objective-C 一个一直以来令人诟病的地方就是没有命名空间,在应用开发时,所有的代码和引用的静态库最...
    iOScoderZZJ阅读 4,320评论 3 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,217评论 30 472