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的扩展,就必 ...
随机推荐
- [记录]python的简单协程框架(回调+时间循环+select)
# -*- coding: utf-8 -*- # @Time : 2018/12/15 18:55 # @File : coroutine.py #一个简单的 Coroutine 框架 import ...
- mongo去重统计
表名:parkUserCost id: patkId: userId: phone: costVal: 适合特定条件下,对某些字段进行去重筛选.(比如限定抢购) 第一种,使用\(first操作符.\) ...
- C语言入门2-程序设计的灵魂—算法及Raptor的应用
一. 什么是算法(5个特性) 算法就是 解决问题的方法和步骤. 算法为解决一个具体问题而采取的确定的 有限的 执行步骤 ,仅指 计算机 能执行的算法. 算法是程序设计的灵魂和核心 ...
- [小米OJ] 4. 最长连续数列
思路: 时间限制为O(n),即不能使用先排序后寻找的方法. 这里利用哈希表查询插入复杂度都为O(1)的特性来解,利用一个哈希表来保存每一个数字以及其所在数列的长度. 遍历每一个数字n:查询表中是否存在 ...
- 高级MySQL
一.MySQL的架构介绍 1.高级MySQL MySQL内核 SQL优化 MySQL服务器的优化 各种参数常亮设定 查询语句优化 主从复制 软硬件升级 容灾备份 SQL编程 2.MySQL的Linux ...
- 如何实现Kali linux系统下的U盘启动(小白指导)
一.准备工作: 声明:这个“操作”并不会影响你原装的系统,真正的即插即用的哦. (1)4GB的U盘<读写速度比较快的> (2)Kali linux镜像文件 (3)软件Universal-U ...
- 转 python - Python在终端通过pip安装好包以后,在Pycharm中依然无法使用的解决办法
转 https://blog.csdn.net/kouyi5627/article/details/80531442 在终端通过pip装好包以后,在pycharm中导入包时,依然会报错.新手不知道具体 ...
- ArchSummit分享 | 高德地图App架构演化与实践
讲师介绍 郝仁杰,高德地图无线开发专家.在7月13日落幕的2019年ArchSummit峰会上就高德地图近几年的App架构演化和实践进行了分享. 背景概述 高德是国内领先的数字地图内容.导航和位置服务 ...
- JDBC秒变C3P0连接池——再加连接解耦
从JDBC连接到C3P0数据库连接池 在Java开发中,使用JDBC操作数据库的四个步骤如下: ①加载数据库驱动程序(Class.forName("数据库驱动类");) ② ...
- spring @Required注解
以下内容引用自http://wiki.jikexueyuan.com/project/spring/annotation-based-configuration/spring-required-ann ...