全部博文(31)
分类: C/C++
2011-11-17 10:08:12
POD类型(Plain Old Data),就是C++里面和C内存结构上完全兼容的结构。 在C++98里面,POD类型有一些限制, 你甚至不能给它加一个构造函数 例如: struct S { int a; }; // S是POD struct SS { int a; SS(int aa) : a(aa) { } }; // SS不是POD struct SSS { virtual void f(); /* ... */ }; // SSS不是POD 然而,C++的SS的内存结构,不是可以兼容C吗, 它除了有构造函数,的确没啥特殊的地方。 是的,在C++11里面,SS就是一个POD。 一个struct,只要它满足一下条件,就算是POD, 1. 没有虚函数 2. 没有虚基类 3. 没有引用 4. 访问控制不能有多种,例如一个POD类型中,不能同时有public 和 private两种访问控制。 (转载请注明来自:nuvoton-m0.com) |