腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
2
回答
C++
pimpl
习惯用法
和
导出
数据结构
c++
、
struct
、
interface
、
dllexport
、
pimpl
我有一个关于
pimpl
模式的问题,也许你们中的一个人可以想出一个我可能错过的解决方案。我已经实现了
pimpl
模式,以向外界隐藏我的dll中的实现,但我被困在如何隐藏需要从dll
导出
的结构上。我知道为了让应用程序知道一些关于"ListItem“的信息,这个结构必须被
导出
,但是这就足够了吗?这是一个好的设计吗?
浏览 36
提问于2020-01-28
得票数 0
1
回答
从经验中学到的.Net
习惯用法
?
c#
、
.net
、
idioms
我刚接触.Net世界,我的主要语言是
C++
,那里有很多
习惯用法
可以帮助我更好地编写代码(RAII、
PIMPL
……)。c#有哪些常见的
习惯用法
?
浏览 2
提问于2010-10-27
得票数 3
1
回答
C++
抽象类还是接口类?
c++
、
abstract-class
但它被要求使用Java,而
C++
则不同。由于存在多重遗传,所以答案可能也不同。如果我使用
PIMPL
习惯用法
,那么我只需要向前声明一个成员。如果我将私有函数移到
PIMPL
类中,那么在abstract类中将只有public
和
protected函数。
浏览 3
提问于2015-06-30
得票数 0
3
回答
c#中是否使用了
pimpl
习惯用法
?
c#
、
c++
、
pimpl-idiom
我来自C#背景,最近开始学习
C++
。我遇到的一件事就是
pimpl
习惯用法
。我曾为一些大公司做过C#开发,但从未遇到过。也许这是错误的,但我的理解是,这在
C++
中是必要的,因为它使用了头文件,并且没有分部类选项。 但在C#中,我们总是使用类库来构建应用程序。我真的不明白为什么
C++
不能做同样的事情。在我看来,
Pimpl
就像一个丑陋的黑客。
浏览 0
提问于2012-04-27
得票数 15
回答已采纳
6
回答
C++
有没有可能没有排除
pimpl
的
习惯用法
?
c++
、
language-design
、
compiler-theory
、
pimpl-idiom
据我所知,
pimpl
习惯用法
之所以存在,只是因为
C++
迫使您将所有的私有类成员放在头中。如果头文件只包含公共接口,理论上,类实现中的任何更改都不需要对程序的其余部分进行重新编译。我想知道的是为什么
C++
的设计不允许这样的便利性。为什么它要求类的私有部分在头部公开显示(没有双关语的意思)?
浏览 1
提问于2008-11-06
得票数 19
回答已采纳
2
回答
在调试器中查看来自DLL的
pimpl
c++
、
visual-studio-2010
、
dll
、
pimpl-idiom
我使用
pimpl
的
习惯用法
来隐藏接口的实现细节,这样我就可以有一定的ABI保护措施。在我的大部分开发生涯中,我对MS...using Linux的细节并不是很精通。我无法从调试器检查窗口查看
pimpl
的内部。我的类型仅扩展到impl的原始指针(它使用智能指针)。我尝试过
导出
符号,但似乎不起作用。我想我实际上正在尝试查看的符号并没有被导入或其他什么。我试着这样做:struct EXPORT object { impl *
pimpl</em
浏览 15
提问于2013-05-31
得票数 10
10
回答
Pimpl
惯用法与纯虚拟类接口
c++
、
abstract-class
、
pimpl-idiom
我想知道是什么让程序员选择
Pimpl
惯用法或纯虚拟类
和
继承。是什么让纯虚拟类不如
pimpl
习惯用法
那么可取呢?
浏览 38
提问于2009-05-05
得票数 123
回答已采纳
1
回答
在接口类二进制中更改私有成员变量的指针类型是否兼容?
c++
、
pimpl-idiom
、
binary-compatibility
背景:不幸的是,这个类没有使用
pimpl
习惯用法
。为了解决这个问题,我想用一个
pimpl
指针替换指针m_p1。 使用Visual Studio 2010、Windows 7
和
10。
浏览 11
提问于2019-10-07
得票数 4
1
回答
pImpl
从根本上解决了
C++
DLL问题吗?
c++
、
dll
、
stl
我正在尝试从带有stl成员的DLL中
导出
一个
C++
类。 private: }; } { }void setString(std
浏览 4
提问于2015-07-31
得票数 3
回答已采纳
2
回答
用最少的代码实现
pImpl
c++
、
boost
、
pimpl-idiom
可以使用什么技巧来最小化实现
pImpl
类的工作负载?
浏览 3
提问于2010-03-01
得票数 10
回答已采纳
1
回答
API设计:向用户隐藏数据模型对象的最佳方法?
c++
、
design-patterns
、
architecture
、
idioms
我正在
C++
中编写一个简单的API,其中我的代码的最终用户将把一个UserProfile类的实例传递给其他各种类进行修改。用户配置文件有一个非常基本的公共接口,数据存储在一个私有的
pimpl
对象中。然后,我将实现类作为好友添加,这样它们就可以访问内部
数据结构
,而内部
数据结构
是在单独的实现文件中定义的。这个类的基本大纲如下。。。// For
pimpl
here{ /&
浏览 3
提问于2014-07-07
得票数 0
2
回答
如何在stl模板中使用
导出
的类(__declspec(Dllexport))?
c++
、
templates
、
dllexport
我正在使用一个
导出
的类{ template __declspec(dllexport) class
浏览 0
提问于2010-11-23
得票数 4
回答已采纳
1
回答
在
C++
中创建NSApplication
c++
、
objective-c
、
graphics
我正在尝试从字面上创建一个游戏引擎(仅使用操作系统提供的系统),并尝试在
c++
中创建它。作为测试,我想为可可窗口创建一个
c++
包装器。(稍后添加图形)我发现我需要使用
pimpl
惯用法。我有一个App.cpp文件(主要的测试方法),Device.h文件
和
Device.cpp文件。这段代码使用clang++编译时没有任何问题,那么为什么不在屏幕上显示一个窗口呢?main() {} Device.h namespace
浏览 11
提问于2020-01-28
得票数 0
回答已采纳
3
回答
如何自动删除对象而不
导出
对象
c++
、
oop
、
raii
我们有多个限制,其中之一是我们应该尽可能避免
导出
类。在一些平台上,当客户使用广泛的编译器时,这是一个问题,这些编译器的名称可能不同。有没有某种
习惯用法
可以让那些工厂创建的对象自动销毁,而不必
导出
大对象?
pimpl
习惯用法
可能会有所帮助,因为它会隐藏UtfString对象的很大一部分,但它仍然迫使我们通过库/dll
导出
对象,这是我们想要避免的。
浏览 6
提问于2014-03-15
得票数 1
3
回答
这是什么设计模式?怎么用?
c++
、
oop
、
design-patterns
假设我有这样的类(简化):class Fooprivate:public: /* methods, etc... */这个类是API的一部分。Foo_p是类的所有私有部分,而不是像往常一样在类Foo本身中声明,而是在一个单独的向前声明的类中使用,这个类只由在外部不可见的底层实现使用。另外,我如何正确使用它(例如异常安全等)?实际的实现应该放在哪里?在Foo类中,像往常一样,只使用Foo_p存储数据,还是在Foo_p类中只使用Foo作为包装器?
浏览 0
提问于2012-02-01
得票数 11
回答已采纳
1
回答
pimpl
惯用法
和
构建器模式之间存在重叠吗?
c++
、
builder
、
pimpl-idiom
我从链接中读到了关于构建器模式的文章,下面的代码似乎使用了类似于
pimpl
惯用法的idea,在类Cook中有一个指向pizzaBuilder的指针作为私有成员。在皮条客
习惯用法
和它在设计器模式中的使用方式之间有没有重叠?
浏览 0
提问于2013-06-14
得票数 2
回答已采纳
3
回答
声明包含
c++
类类型ivar的obj-c类接口
objective-c
、
cocos2d-iphone
、
objective-c++
、
box2d-iphone
BasicNode : CCNode { ccColor3B _color; b2Fixture *_shape;b2Body
和
b2Fixture是Box2D.h中定义的
C++
类 如果BasicNode的实现被命名为BasicNode.mm,它就会起作用。但是,如果我有另一个名为Game.m的文件,该文件使用BasicNode并导入BasicNode.h,它将无法编译,因为.m文件是Obj-C文件,并且不知道
C++
代码。但是我不认为我声明一个
C++</em
浏览 0
提问于2011-11-18
得票数 4
回答已采纳
2
回答
MSXML2::IXMLDOMDocument2*的静态实例变为无效
c++
、
msxml
我有一个MSXML2 dll (x.dll),它
导出
一个使用
C++
::IXMLDOMDocument2*的静态实例的类。private:};class
PIMPL
public: static s_bInit;
浏览 0
提问于2009-03-23
得票数 0
1
回答
如何在
C++
动态链接库中实例化一个类,以便它在函数调用之间维护内存?
c++
、
dll
} MyDll.defEXPORTS其思想是,第一次调用它时,它返回传递的值,第二次调用它时,它返回传递的值
和
之前传递的值的
和
浏览 5
提问于2011-12-16
得票数 2
回答已采纳
2
回答
pimpl
惯用结构内存泄漏
qt
、
boost
、
memory-leaks
、
pimpl-idiom
我们在我们的课程中使用了
pimpl
的
习惯用法
。
pimpl
结构在包含
pimpl
指针的类中声明,如下所示:friend struct MyClassImpl;
pimpl
的实现位于一个名为MyClassImpl.cpp的单独文件中,例如: {m_SomeOtherClass;
浏览 10
提问于2011-03-17
得票数 1
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
进度更新:VS2019 v16.8中对C+20模块的支持
你试过C语言和Python一起混合编程吗?两者相加不是已经无敌了!
TypeScript Nodejs 项目结构
C/C++ 从0到1系统精讲 项目开发综合基础课-慕慕实战
大神的c语音书单
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券