在我之前用 C 编写的程序中,我需要一个包含多个“核心”数据的对象,我的程序中的所有函数都可以访问这些数据,我最终选择了一个结构
我已经使用指向该结构的指针来读取或写入数据;它速度快,适合工作,而且成本低廉,因为访问指针可能是您可以在 C 中做的最便宜的事情之一,而且我从来没有找到更好的东西,所以我对这个解决方案很满意。
现在在 C++ 中我遇到了同样的问题,我需要共享一个由一些原始类型组成的状态,我很想使用所谓的 POD 之一,它基本上意味着 struct
,再次,但这次是出于安全考虑。
假设我需要在我的程序中携带这个“Blob”数据,通过引用访问的结构是 C++ 中最快的东西吗? getter 方法的成本是多少?
最佳答案
如果您的 getter 代码是内联的(在头文件中),那么编译器可以消除在它输出的机器代码中调用函数的需要。
例如:
class Data
{
private:
int number_;
public:
int GetNumber() { return number_; }
};
编译器将看到 GetNumber 的定义,知道它的作用很简单,并且知道您在何处调用了 GetNumber(),它会简单地将其替换为 number_。因此,使用 getter 与直接访问成员将产生等效的代码,并且两者执行相同的操作。
关于c++ - 在 C++ 中为 parcelable 选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12759653/