我想知道在 C++ 中从结构访问数据和从类访问数据的运行时间是否存在差异。在我目前的理解中,Struct 是一个类,但没有成员函数。我有一些代码使用对象比使用结构慢得多,这似乎表明存在差异,但这让我感到困惑,因为我的直觉告诉我不应该有很大的差异。
问问题
425 次
5 回答
9
于 2013-06-07T19:08:22.263 回答
2
都是一样的,无论是结构还是类(我假设它就是你所说的对象,因为任何实例在技术上都是对象,无论是原语、结构还是类),编译器也是如此访问成员的偏移量计算。两者之间并没有太大的区别——它们在语法方面可能看起来不同,但 C++ 调用someObject.someMethod()
等同于 C 版本SomeObject_someMethod(&someObject)
,这是成员调用的真正含义。但这仅涉及成员方法,对类和结构成员的访问速度实际上是相同的。
于 2013-06-07T19:10:49.950 回答
2
我不知道为什么您会遇到运行时间不同的问题。
结构和类,我假设这就是您所说的对象,除了默认为公共的结构和默认为私有的类之外,几乎相同。
So to sum it up there should be no difference functionally or speed wise
编辑:您可能会遇到结构运行速度更快的原因是因为人们倾向于将结构用于 POD,而类具有更多功能,但是这是基于样式而不是结构和类的实际功能
于 2013-06-07T19:08:12.017 回答
1
于 2013-06-07T19:10:00.290 回答
1
在 C++ 中有 3 种对象属于类类型:
- 结构
- 班级
- 工会
它们在功能上彼此等效,因此您应该扩展更多内容并详细介绍您的实现。
于 2013-06-07T19:10:30.743 回答