C++、 C 中的结构体、联合和枚举 异同
2015-08-04 08:35
459 查看
C++结构体
c++定义结构体的语法 和 c 相同
不同点:
联合 union
定义联合体的语法 和 c 完全相同
不同点:
枚举 enum
定义枚举的语法 和 c 完全相同
不同点:
表达类型时 可以省略enum
枚举变量只能赋值 枚举值,不能赋值整数这里体现了c++的类型检查严格。
c++定义结构体的语法 和 c 相同
不同点:
1.在表达结构体类型时 c++可以省略struct 关键字。 2.c++结构体中可以定义函数。
#include <iostream> using namespace std; struct Name { string dsanmux; void show()//结构体中可以定义函数 { cout << dsanmux << endl; } }; int main() { Name name; //省略struct name.show(); }
联合 union
定义联合体的语法 和 c 完全相同
不同点:
1.表达联合类型时 可以省略 union 2.c++支持匿名联合
#include <iostream> using namespace std; int main() { union { int x; char data[4]; }; x=0x41424344; //c++支持匿名联合 cout << x << endl; for(int i=0;i<4;i++) { cout << data[i] << ' '; } cout << endl; }
枚举 enum
定义枚举的语法 和 c 完全相同
不同点:
表达类型时 可以省略enum
枚举变量只能赋值 枚举值,不能赋值整数这里体现了c++的类型检查严格。
#include <iostream> using namespace std; enum Dire{UP,DOWN,LEFT,RIGHT}; int main() { Dire dir; dir = LEFT; int x=321; x = dir; cout << x << endl; x=3; //这里体现了c++ 的类型检查严格 //dir = x 枚举变量只能赋值 枚举值,不能赋值整数 if(3 == x ) { dir = RIGHT; } }
相关文章推荐
- 设计模式C++学习笔记之十九(State状态模式)
- 设计模式C++学习笔记之十八(Visitor访问者模式)
- 设计模式C++学习笔记之十七(Chain of Responsibility责任链模式)
- 设计模式C++学习笔记之十六(Observer观察者模式)
- 设计模式C++学习笔记之十五(Composite组合模式)
- 设计模式C++学习笔记之十四(Iterator迭代器模式)
- 设计模式C++学习笔记之十三(Decorator装饰模式)
- 设计模式C++学习笔记之十二(Command命令模式)
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 《C++ Primier Plus》02
- 设计模式C++学习笔记之十(Builder建造者模式)
- 设计模式C++学习笔记之九(Template Method模板方法模式)
- 设计模式C++学习笔记之八(Adapter适配器模式)
- 设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)
- 设计模式C++学习笔记之六(Facade门面模式)
- 设计模式C++学习笔记之五(Factory Method工厂方法模式)
- 设计模式C++学习笔记之四(Multition多例模式)
- 设计模式C++学习笔记之三(Singleton单例模式)
- 设计模式C++学习笔记之二(Proxy代理模式)
- 设计模式C++学习笔记之一(Strategy策略模式)