第一章 C++对C的扩展(Externsion)--(1)类型增强
来源:互联网 发布:美食app 知乎 编辑:程序博客网 时间:2024/06/05 07:09
曾有人戏谑的说,C++作为一种面向对象的语言,名字起的不好,为什么呢?用c的
语法来看,++ 操作符是post ++ 。
1类型增强
1.1类型检查更严格
比如,把一个const类型的指针赋给非const 类型的指针。c 语言中可以通的过,但是在c++中则编不过去。
int main(){ const int a = 100; int b = a; const int *pa = &a; int *pb = pa; return 0;}
1.2布尔类型(bool)
c语言的逻辑真假用0和非0来表示。而c++中有了具体的类型。
int main(){ bool flag = true; if(flag != false) { printf("i know bool type now\n"); } printf("bool size = %d\n",sizeof(bool)); return 0;}
1.3真正的枚举(enum)
c语言中枚举本质就是整型,枚举变量可以用任意整型赋值。而c++中枚举变量, 只能用被枚举出来的元素初始化。
enum season {SPR,SUM,AUT,WIN};int main(){ enum season s = SPR; s = 0; return 0;}
errorD:\WorkSpace\qtcpp\1\main.cpp:10: error: invalid conversion from 'int' to 'season' [-fpermissive]
1.4表达式的值可被赋值
c语言中表达式通常不能作为左值的,即不可被赋值,c++中某些表达式是可以赋值的。比如:
#include <iostream>using namespace std;int main(void){ int a,b = 5; (a = b) = 10; cout<<"a = "<<a<<" b = "<<b<<endl; (a<b? a:b) = 200; cout<<"a = "<<a<<" b = "<<b<<endl; return 0;}
0 0
- 第一章 C++对C的扩展(Externsion)--(1)类型增强
- 第一章C++对C的扩展(Externsion)--(3)函数重载
- 第一章C++对C的扩展(Externsion)--(5)默认参数
- 第一章C++对C的扩展(Externsion)--(6)引用
- 第一章C++对C的扩展(Externsion)--(7)new/delete
- 第一章C++对C的扩展(Externsion)--(2)输入与输出
- 第一章C++对C的扩展(Externsion)--(4)操作符重载
- c++对c的增强
- C++对C的增强
- C++对C的增强
- C++对C的增强
- C++对C的增强
- C++对C的增强
- C++对C的增强
- C++对C的扩展之bool(布尔类型)
- C++对C的扩展之枚举类型enum
- C++对C的扩展
- GNU对C的扩展
- JAVA时钟
- LeetCodeOJ_234_Palindrome Linked List
- Robot Framework使用For循环
- 结构体内存分配问题
- HBase基本数据操作详解【完整版,绝对精品】
- 第一章 C++对C的扩展(Externsion)--(1)类型增强
- STM32 FOC SDK 上电电机自动旋转
- Robot FrameworkResource及关键字的使用
- 一句shell命令搞定代码行数统计
- Theaon:theaon的图结构
- soj 3014: Seek the Name, Seek the Fame (字符串hash)
- win7 64编译64位boost
- 平台顺利通过公安部一所《GBT 28181-2011 安全防范视频监控联网系统信息传输、交换、控制技术要求》检测
- Bozosort: Sorting by Exchanging