c++教程(一)c过渡c++
来源:互联网 发布:星际淘宝网588 编辑:程序博客网 时间:2024/06/06 05:14
1.原生bool
c语言没有bool类型,c++中增加了bool类型,0为false,非0为true。
2.头文件包含区别
标准C++,如#include < iostream>;xxx.h 是c继承而来的;cxxx 是c继承而来,符合c++标准的。
3.域作用符
c++增加了域作用符,可以用namespace定义命名空间。
4.new,delete
c++采用new 在堆上申请空间,delete释放空间,new delete是运算符,malloc free是函数。
5.c++支持函数重载
函数重载指的是,函数名相同但是参数不同(参数类型不同,个数或者顺序不同),跟返回值无关。c语言是不支持函数名重复的。c++重载是通过根据参数来更改函数名的,函数调用时,会根据参数类型进行匹配,匹配方式包括:精准匹配:int->int提升匹配:char ->int float ->double类型转换:如,int -> unsigned int匹配冲突:当有多个匹配时,就会出现二义性
6.函数默认参数
c语言不支持函数默认参数,但c++支持,而且默认参数必须从右到左出现。
7.内联函数
c语言中定义内联是通过宏定义实现的。c++可以通过inline定义内联函数,但是c++中把函数体定义在类中也会是内联函数,实际项目中,通常setxxx,getxxx我们会定义成内联。内联不一定会成功,编译器会进行优化,一般是根据栈和展开度来判定是否是内联。
inline void printA(){ printf("hello\n");}
8.类型转换
c++中增加了四个类型转换符:
static_cast:不是强制转换,表示转换const_cast:const->非const,移除对象的常量性,不能修改内容。reinterpret_cast:强制转换,是二进制层面的强制转换。dynamic_cast:推导转换
int num = static_cast<int>(1.0003);int* np = nullptr;char *cp = reinterpret_cast<char*>(np);const int num1 = 10;int *np2 = const_cast<int*>(&num1);
9.引用
c++加入了引用,引用是别名,没有独立的空间,一旦绑定变量,再无法更改。
#include <iostream>void swap(int &a, int &b){ int temp = a; a = b; b = temp;}int main(void){ int a = 10; int b = 20; swap(a, b); std::cout << a << b << std::endl; //const变量只能赋给const引用。 const int num = 30; const &refNum = num; return 0;}
1 0
- c++教程(一)c过渡c++
- 《C语言程序设计教程》(一)
- c过渡到c++
- 一些图片过渡特效(C/C++)
- 从C过渡到C++
- 从C过渡到C++
- c到c++的过渡
- C到C++的过渡
- opencv教程(一)(c++)
- Windows c语言自学教程(一)
- 简明C语言教程(一)前言
- 【C#】教程
- 从C到C++过渡知识
- c语言到c++过渡2
- [objective-c]教程一-----objective-c 类和方法
- 第一课:C过渡到C++--之二
- C#,深入浅出全接触(一)_C#教程
- C#,深入浅出全接触(一)_C#教程
- apache静态文件配置
- A【NOIP2017提高组模拟12.18】
- 对pearson相关系数以及协方差矩阵的理解
- 泰勒与极限
- MFC操作注册表
- c++教程(一)c过渡c++
- 图的强联通分量模板
- jquery.form实现文件上传
- UX入門 - 1
- 大话设计模式学习之工厂模式(一)
- ThinkPHP--SQL 查询方式
- autorelease基本使用
- Linux 字符设备驱动结构(三)—— file、inode结构体及chardevs数组等相关知识解析
- LeetCode_003 Longest Substring Without Repeating Characters(greedy)