c11标准
在编译器vs13及其以上可以使用 编译器对语言的一种优化
1.变量初始化 int a=0,a(10),a{10};定义a的值的三种方式
2.nullptr 相当于c的null 有类型 更加的安全
3.auto 自适应类型 用于返回类型比较复杂的返回值
4.decltype 用一个变量定义同类型的变量/该类型的引用
5.关于for的一个用法for(i:arr) 变量数组里所有的数据
6.类的别名 C语言用 typedef int INT typedef 类型名 别名来定义 c++中用using INT=int来使用
7.类中成员 一般是构造中赋初值 C11可以直接在类中赋初值
8.A()=default;自动生成默认构造
9.委托 在构造中调用自己的其他构造
10.final 放在虚函数后面防止重写终极函数不能重写 放在类后面终极类不能派生其他子类
#include<iostream>
#include<vector>//向量
using namespace std;
class A
{
int data = ;
int y;
public:
//A(){ data = 0; }//构造函数
A() = default;//默认构造 如果写了其他构造 默认不在自动生成一个构造函数
A(int data) :data(data){}//有参构造 初始化新参列表
A(int x, int y) :A(x){ this->y = y; }//在里面调用其他构造帮忙做事情 --->委托
}; class B
{
public:
virtual void fun(){
cout << "父类函数" << endl;
}
virtual void fun2()final{//加上final为终极类不能进行派生
cout << "父类函数2" << endl;
}
};
class C :public B
{
void fun(){
cout << "子类函数" << endl;
}
// void fun2(){
// cout << "类函数2" << endl;
// }子类函数fun2不能继承父类的函数 因为父类函数是终极函数 不能进行派生
};
class D final//不能派生任何子类
{ };
class E//:public 不能派生D
{ };
int main()
{
A aa;
int a = ;//c语言的赋值方式
int b();//c++的赋值方式 常用于初始化形参列表
int c{};//c11标准提出
int d[]{, , , , , , , , };//数组初始化
NULL;//c语言指针空 宏定义
nullptr;//c++的指针空 void*类型 auto x = 3.14;//auto类型 根据后面的值返回定义的类型 必须初始化否则无意义
vector<int>arr = { , , , , , , , };
//初始化数组
vector<int>::iterator it = arr.begin();//指向第一个元素 iterator用于修改元素的值
auto p = arr.begin();
cout << *it << endl << *p << endl;
int y;//int类型的变量
decltype(y) z;//定义一个变量z
//decltype是返回y的类型 z的类型和y的类型一样 int z
//z是什么类型 根据前面的y确定的 目的:定义同类型的变量
decltype((y)) py = y;//定义一个引用类型 相当于 int& y
for (auto i : arr)//循环打印arr的所有元素 i是新定义的变量 arr是数组
{
cout << i;
}
using INT = int;//给int取别名 INT
using ARR = int[];
ARR ab;//相当于int ab[4];
cin.get();
return ;
}
c11标准的更多相关文章
- C11 标准特性研究
前言 - 需要点开头 C11标准是C语言标准的第三版(2011年由ISO/IEC发布),前一个标准版本是C99标准. 相比C99,C11有哪些变化呢!!所有的测试全部基于能够和标准贴合的特性平台. 但 ...
- GCC 版本与C11标准
1. GCC版本是否支持C11 C89=C90:gcc选项是:-ansi, -std=c90 or -std=iso9899:; 带了GNU扩展的:-std=gnu90 C94=C95:gcc选项:- ...
- C89标准和C99标准C11标准的区别
转载 C89标准和C99标准C11标准的区别 C99对C89的改变 1.增加restrict指针 C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的惟一途径,因此只有借 ...
- 是我out了,c11标准出炉鸟
gcc -std=c11 -Wall -O3 -g0 -s -o x.c x 或者 clang -std=c11 -Wall -O3 -g0 -s -o x.c x 来吧! 我是有多无聊啊 测试代码: ...
- gcc开启C99或C11标准支持
开启C99支持 gcc -std=c99 forc99.c 开启C11支持 gcc -std=c1x forc11.c 或 gcc -std=c11 forc11.c
- C语言的三套标准 C89(C90)、C99、C11
C语言最初由 Dennis Ritchie 于 1969 年到 1973 年在 AT&T 贝尔实验室里开发出来,主要用于重新实现 Unix 操作系统.此时,C语言又被称为 K&R C. ...
- C89标准库函数手册(待整理)
http://zh.cppreference.com/w/c 前言 ANSI C(C89)标准库函数共有15个头文件.这15个头文件分别为: 1.<assert.h> ...
- [转载]哪个版本的gcc才支持c11
转自:https://blog.csdn.net/haluoluo211/article/details/71141093 哪个版本的gcc才支持c11 2017年05月03日 19:25:43 Fi ...
- GNU C编译器的gnu11和c11
国际标准组织发布c11后,gnu为自己的编译器发布两种标准gnu11和c11 gnu11:带gnu c扩展的c11标准,如果你的代码包含了typeof,__attribute__等等gnu的扩展,就必 ...
随机推荐
- Uncaught Error: Bootstrap dropdown require Popper.js
Bootstrap 要求Popper.js 如果安装了Popper.js还报错,肯定就是Popper的问题 https://cdn.bootcss.com/popper.js/1.12.5/umd/p ...
- c++小游戏——俄罗斯方块
#include<cstdio> #include<windows.h> #include<ctime> int a[24][17],i,j,tim=800,ti= ...
- Linux下移动图像监测系统——motion的移植及应用
移动图像监控主系统的开发 移动图像监控的原理方法: 通过获取摄像头图像,比较前后每一帧的图像数据,从而实现移动物体监控.所有移动监控均是如此,只是图像帧的比较算法不同. 移动图像监控系统的实现 选择开 ...
- C#3.0新增功能02 匿名类型
连载目录 [已更新最新开发文章,点击查看详细] 匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型. 类型名由编译器生成,并且不能在源代码级使用. 每 ...
- 通信模型socket
I/O的概念 操作系统的分为socket的I/O还有用户界面的输入输出,一般一个输入操作分为两个不同的阶段,1)等待数据准备好:2)从内核向进程复制数据 从理论上来讲,阻塞I/O.非阻塞I/O.复用I ...
- an introduction of google breakPad for android
一.背景 众所周知,Android JNI层的Crash问题是个比较头疼的问题.相对Java层来说,由于c/c++造成的crash没有输出如同 Java的Exception Strace,所以cras ...
- JavaSE总结(二)
一.Java Number .65f;byte c =0x4a; 然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形.为了解决这个问题,Java 语言为每一个内置数据类型提供 ...
- iView学习笔记(一):Table基本操作(包含前后端示例代码)
iView表格操作 1.前端准备工作 首先新建一个项目,然后引入iView插件,配置好router npm安装iView npm install iview --save cnpm install i ...
- linuk相关命令
1,Linux的每个文件一般都有三个权限 r--读,w--写,x--执行,其分别对应的数值为4,2,1. 输入ll可以查看到文件的权限. 2,给目录或文件授权 chmod 777 目录名 chmod ...
- 14. 流、文件和IO
前言 InputStream/OutStream流用来处理设备之间的数据传输 Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持 ...