概述
0. 引入
C++的版本号比较有意思,C++98是1998年发布的,C++11是2011年发布的,C++14和C++17分别是2014年和2017年发布的。
C++11是作为取代C++98的版本,这两个版本都是非常经典的版本。
在工作中,遇到了一些C++11特有的基础语法,下面记录一部分。
注意,本篇只讲解笔者看代码常见到的最基础的C++11语法,并不涉及labmda、thread、smart pointer等高级语法。
1. C++11的编译
在linux中,可以使用如下命令来编译C++程序:
- 使用C++11标准来编译
g++ -std=c++11 main.cpp -o main
- 使用C++98标准来编译
g++ -std=c++98 main.cpp -o main
- 使用C++20标准来编译
g++ -std=c++2a main.cpp -o main
2. auto
使用auto来定义变量,简化编程。
auto a=0; //x has type int because 0 is int
auto b='a'; //char
auto c=0.5; //double
auto d=14400000000000LL;//long long
auto e=mapString.begin();//std::map<std::string, std::string>::const_iterator e = mapString.begin();
3. decltype
decltype能返回“一个变量的类型”,如下示例:
auto x = 1.5;
typedef decltype(x) MYTYPE;
MYTYPE y = x+3;//define y as double
cout<<y<<endl;//4.5
typedef decltype(x) MYTYPE;
就相当于typedef double MYTYPE;
4. in-class initialization
C++11支持在class中对成员变量直接进行初始化。
class C
{
int a=7; //C++11 only
public:
C();
};
5. Unicode
C++11支持如下两种类型来定义Unicode字符。
char16_t c = u'于'; //c++11
char32_t c = U'于'; //c++11
6. Fixed width integer types
C++11支持固定长度的整数类型,如下所示:
int16_t x = 666;
不需要导入任何头文件就能编译通过。
7. Defaulted Functions
C++11支持用=default
的方式,让编译器生成默认实现的函数。
struct A
{
A()=default; //C++11
virtual ~A()=default; //C++11
};
8. int变量的初始化
示例如下:
//allocate an int, default initializer (do nothing)
int * p1 = new int;
//allocate an int, initialized to 0
int * p2 = new int();
//allocate an int, initialized to 5
int * p3 = new int(5);
//allocate an int, initialized to 0
int * p4 = new int{};//C++11
//allocate an int, initialized to 5
int * p5 = new int {5};//C++11
总结
记录了笔者看代码常见到的最基础的C++11语法,从这些语法中也能一瞥C++11的特性。
参考
- https://smartbear.com/blog/the-biggest-changes-in-c11-and-why-you-should-care/
- https://github.com/ShiqiYu/CPP
最后
以上就是聪明大米为你收集整理的常见的几个C++11特有的基础语法0. 引入1. C++11的编译2. auto3. decltype4. in-class initialization5. Unicode6. Fixed width integer types7. Defaulted Functions8. int变量的初始化总结参考的全部内容,希望文章能够帮你解决常见的几个C++11特有的基础语法0. 引入1. C++11的编译2. auto3. decltype4. in-class initialization5. Unicode6. Fixed width integer types7. Defaulted Functions8. int变量的初始化总结参考所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复