代码之家  ›  专栏  ›  技术社区  ›  peoro

C++:POD和POD缠绕对象

  •  2
  • peoro  · 技术社区  · 14 年前

    通常我声明类来包装一个简单的旧数据值;没有虚拟函数的简单类,例如:

    class Velocity {
        int vel;
    public:
        // functions to work with velocity ...
    }
    
    1. 处理这样的对象和处理POD值是一样的吗?--如果在我的代码中使用 int Velocity ? 标准对此有什么规定吗?

    2. 我可以投射一个指针或一个这样的对象数组,比如POD值和viceversa的指针/数组吗?--我完全安全吗 Velocity *v = reinterpret_cast< Velocity* >( int_pointer )

    3 回复  |  直到 14 年前
        1
  •  4
  •   Johannes Schaub - litb    14 年前

    处理这样的对象和处理POD值是一样的吗?

    memcpy 和朋友在上面(只允许在豆荚上!).

    如果它是一个吊舱,你是完全安全的。但这不是一个POD,因为它有一个私有数据成员。


    那个 类(并且在C++ 0x中,您 允许使用 这样的 有私人成员的班级 ,因为它允许所有琐碎的可复制类型,包括您的类型和许多其他非pod)。

        2
  •  4
  •   Cheers and hth. - Alf    14 年前

    再效率,或者缺乏效率,这是一个执行质量的问题。

    重播:不,它具有实现定义的效果。别这么做。

    干杯。,

        3
  •  1
  •   BЈовић    14 年前

    1) 你的例子不是POD,因为类有private字段