c++ - memset 和 struct 以及 getter/setter

标签 c++

我有一个简单的 pod 结构,例如:

struct T
{
    int x;
    float z;
}

我想将数据设为私有(private)并添加 getter/setter。我可以在该结构上使用 memset 吗?

memset(obj, 0, sizeof(T)); 

最佳答案

I want to make a data private and add getters/setters. Can I use memset on that struct ?

是的,只要类可以轻松复制,并且对象不是潜在重叠的子对象,您就可以使用 memset。

附注从技术上讲,C++ 并不能保证将 Memsetting float 设为零字节,尽管它在大多数系统上可能会这样做。字节的任何其他值都更没有意义。

P.P.S 指针也有同样的问题:Null 不能保证所有位都为零。

P.P.P.S。如果您的目的是将值设置为零,我想不出使用 memset 0 而不是使用值初始化和赋值的充分理由。

关于c++ - memset 和 struct 以及 getter/setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63111429/

相关文章:

c++ - 如何在 C++ 中不使用 pow 进行基础计算?

c++ - 我做了一件见不得人的事

c++ - T "decaying"数组的函数参数到指向 T 的指针?

c++ - 为什么 C++ 允许通过指针访问类的私有(private)成员?

c++ - 将 int 转换为 int 指针地址

c++ - 一个类的方法覆盖另一个类的所有方法

java - 从 QBytearray 创建 QImage

c++ - 在 C++ 中为类的助手使用静态函数

c++ - Array 和 Vector 在编程中的区别

c++ - 在 C++ 中填充对称矩阵