当前位置:编程学习 > 网站相关 >>

当嵌套类遇见API

有时候需要在一个类中定义另外一个类,即嵌套类。为隐藏嵌套类某些公共方法的实现细节,在cpp中实现了嵌套类的成员函数。
在本模块中访问嵌套类的方法,编译和链接都没有问题。
class Out
{
public:
 struct NestedClass
 {
    void doSomething();
 };
};
 
调用
Out::NestedClass nc;
nc.doSomething();
 
假如需要暴露Out类(作为动态库)给其他模块使用
class DECL_API Out
{
public:
 struct NestedClass
 {
    void doSomething();
 };
};
 
这时候能在其他模块(DLL/EXE)中调用嵌套类,会链接成功吗?
 
答案是否定的。需要把嵌套类显式的导出,也就是说外部类导出并不会将嵌套类同时导出。
class DECL_API Out
{
public:
 struct DECL_API NestedClass
 {
    void doSomething();
 };
};
 
补充:综合编程 , 其他综合 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,