c++ - 类 typedef 在类之外定义
问题描述
我正在编写一个C
具有内部类的类T
,我希望将T
hidden 的详细信息作为C
. 中的方法C
都使用指向T
. 这当然是可能的:
// In header
class C {
public:
class T;
T* f();
void g(T*);
};
// In .cpp
class C::T { /* details here */ };
现在我的问题是,如何在文件C::T
中定义另一个类型别名。.cpp
以下内容根本无法编译,但它说明了我想要做的事情:
// Outside the class C
using C::T = std::string;
是否有任何解决方法,同时保持目标,即隐藏细节C::T
?
解决方案
最接近这一点的方法是让您的 t 从字符串派生:
class C::T : public std::string { ... };
推荐阅读
- html - Angular 6,7 如何将默认主题颜色应用于 mat-sidenav 背景?
- c# - 如何为清单 ETW 创建 dll 程序集
- karate - 如何在空手道中迭代多个特征文件
- ember.js - 在 ember-power-select(onmouseEnter, OnMouseLeave) 中注册自定义事件
- r - 使用列表和数据框对值进行排名
- ionic-framework - 当我通过相机拍照时,它在 ionic3 中倒车
- wpf - 在 XamDataGrid 中实现条件格式,如 excel
- angular - 角度的引导数组
- r - 如何修复 R 中印地语字符的条形图显示?
- typescript - TypeScript 通用函数 - 为数组应用函数时出现“参数不可分配错误”