首页 > 编程语言 >《C++》C11新特性--1

《C++》C11新特性--1

时间:2023-08-25 23:02:31浏览次数:46  
标签:std cout -- auto C++ char int bool C11

1.原始字符串字面量 R"(字符串)"

    const char* str1 = "D:hello\world\test.txt";
    const char* str2 = R"(D:hello\world\test.txt)";
    std::cout << "直接输出str:\t\t" << str1 << std::endl;
    std::cout << "原始字符串输出str:\t" << str2 << std::endl;

2.nullptr空指针、constexpr修饰常量、auto自动类型推导

    //nullptr置空指针
        int* a = nullptr;
    //constexpr修饰常量,可以是数据类型、表达式、函数
        constexpr int b = 10;
        //b = 20;error
    //auto自动数据类型
        char c = 'c';//char
        auto cc = 'c';//char

3.auto和decltype在模板的配合使用

template <typename T1,typename T2>
auto test03(T1 x, T2 y) -> decltype(x + y)
{
    return x + y;
}

4.类继承,final的类方法不能重写其父类虚函数、override重写虚函数的检测

class Base
{
public:
    virtual void print() {
        std::cout << "这是父类" << std::endl;
    }
};
class Child : public Base
{
public:
    void print() override//override如果不存在print的虚函数会报错
    {
        std::cout << "这是儿子" << std::endl;
    }
};
class GrandChild : public Child
{
    void print() override final//final的类不能派生
    {
        std::cout << "这是孙子" << std::endl;
    }
};
class GrandGrand : public GrandChild
{
    //error,这里重写加了final的父类虚函数报错
    //void print() override final//final的类不能派生
    //{
    //    std::cout << "这是孙子的儿子" << std::endl;
    //}
};

5.委托构造函数和继承构造函数

class A
{
public:
    //链式委托
    A(int a)
    {
        this->M_a = a;
    }
    A(int a,bool b) : A(a)
    {
        this->M_b = b;
    }
    A(int a,bool b,char c) : A(a,b)
    {
        this->M_c = c;
    }
    int M_a;
    bool M_b;
    char M_c;
};
class B : public A
{
    //继承父类构造
    using A::A;
};
B b1(5, true, '!');
std::cout << b1.M_a << " " << b1.M_b << " " <<b1.M_c << std::endl;

标签:std,cout,--,auto,C++,char,int,bool,C11
From: https://blog.51cto.com/u_16071993/7236207

相关文章

  • c语言 字符指针,字符串的输出
    @TOC前言一、字符指针初始化:一般写法:char*str="hellowyy";完美写法:constchar*str="hellowyy";注释:const就是常的意思,常量指针,指向常量字符串,因为字符串就是自身的数组名字。相当于:chara[10];char*str=a;字符串中间有\0:字符串只找结尾。若中间有\0,则字符串......
  • 图形化工具 Graphviz 介绍
    GraphVisualization图形可视化是一种将结构信息表示为抽象图形和网络的图表的方法。自动绘图在软件工程、数据库和网页设计、网络以及许多其他领域的可视化界面中有许多重要的应用。Graphviz是开源图形可视化软件。它有几个主要的图形布局程序。有关一些示例布局,请参阅图库。它......
  • IO流(二)
    1、文件拷贝①、创建读和写的两个对象②、拷贝(边读边写)③、同时释放读和写的资源importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;publicclassTest1{publicstaticvoidmain(String[]args)throwsIOException{......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • 分发饼干算法
    packagemainimport"fmt"funcdistributeCandies(candies[]int,kids[]int)[]int{//计算每个孩子可以得到的饼干数量max:=0for_,candy:=rangecandies{ifcandy>=kids[0]{max=max+1}}//如果每......
  • 线段树+动态开点权值线段树+主席树学习笔记
    线段树一般用于维护符合结合律的信息。可以用于求区间最大值区间和区间最小值最大子段和甚至于最大负数最小正数之类的信息。事实上线段树只有你想不到,很少有做不到的,算是相当常用的数据结构。下面将结合个人理解和具体题目来讲一讲线段树。[https://www.luogu.com.cn/proble......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • Nexus 如何配置匿名用户访问一个仓库
    现在有这样一个需求,我们需要匿名用户访问Nexus的一个公共仓库。设置Roles在满足这个需求之前,我们需要设置一个Roles。Role的名字是可以随填写的。这里关键的问题在你需要访问的仓库的View的权限需要设置Read和Browse这2个权限。如上图,我们为maven-public设......
  • [USACO10DEC] Cow Calisthenics G
    注意到“最大值最小”,考虑二分最大直径。对于当前直径,树形dp+贪心的封锁。f[u]:以u为根的子树,叶节点到u的最大距离+1。在树形dp时维护mx,与f[u]组成直径。复杂度\(\mathcal{O}(n\logn)\)。ViewCode#include<bits/stdc++.h>usingnamespacestd;......
  • odoo16.0 企业微信解决方案
    需求背景企业微信作为当前企业内部沟通的几大内部IM软件之一,其优势在于能够跟微信打通,方便与客户联系。很多客户都有需求,要在企业微信内部对工作进行及时通知和反馈,在企业微信中进行审批,乃至统计员工的考勤和费用等等。本模块将展示,通过与odoo的关联,我们将如何利用企业微信提......