找回密码
 立即注册

QQ登录

只需一步,快速开始

开启左侧

C++11这些令人无比愉悦的改变(1) -- POD类型

[复制链接]
admin 发表于 2013-12-24 09:57:22 | 显示全部楼层 |阅读模式
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)
牛卧堂
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU