C++如何为类内部定义的结构体设置外部简化使用方式?
问题原因&解决方案
1. 修复头文件语法错误
你提供的a.h中嵌套结构体a的定义结尾缺少分号,属于基础语法错误,会直接导致编译失败,优先修改:
// a.h 修正后 class d { public: struct a { int val; }; // 此处补充分号 };
2. 修正类型简写的写法
类的嵌套公有类型不能直接用using d::a;的命名空间成员导入语法,需要改用类型别名的写法实现简写:
// a.cpp 修正后 #include "a.h" using a = d::a; // 用类型别名给d::a设置简写a a methodName() { a obj; // 执行相关逻辑 return obj; }
补充说明
如果不需要全局简写,也可以在每次使用时直接写全限定名d::a,不需要额外声明别名。
内容的提问来源于stack exchange,提问作者V. M.
相关产品推荐
相关产品推荐

