C++11关键字

这篇具有很好参考价值的文章主要介绍了C++11关键字。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

decltype

根据表达式的类型自动推导类型

int main(void)
{
    

    decltype(x) c = 21.1; //赋值
    decltype((x)) d = c; // 是一个引用
    decltype(x) e = c; //
    d = 120;
    cout << sizeof(int) << endl;
    cout << sizeof(c) << " c=" << c << endl; // c的类型按照 x的类型进行显示
    cout << sizeof(d) << " d=" << d << endl;
    cout << sizeof(e) << " e=" << e << endl;

    return 0;
}

 C++11关键字

 C++11关键字

template <typename T, typename T2>
auto ADD(T a, T2 b) -> decltype(a+b)
{
    return a + b;
}
int main(void)
{
    int a = 10;
    int b = -5;
    double x = 10.1;
    double y = -5.1;
    cout << ADD(a, x) << endl;
}

概念

C++中的链接性分为外部,内部,作用域为整个文件的变量。还有无链接性的局部变量

static

使一个变量声明为全局变量,仅在当前文件可见,外部文件不可以使用。

static放在函数中,导致局部变量存储为静态 ,当前文件函数外部不可访问。 static int a=0;

extern 

可以访问不同文件下定义的全局变量,不包括static 修饰的常量.extern a;

const

使一个变量声明为一个常量 const int a =10;具有常量的特性,不可改变其值,且链接性同static,文件外部不可访问 

说明符和限定符

register 

使变量分配到所在的寄存器

auto

自动推导类型

volatile

C++11关键字

mutable

C++11关键字

new和delete

定位new运算符:
double* pd1;double* pd2;
char buffer[512];
pd2 = new (buffer) double[5]; //在buffer里

普通new运算符:

pd1 = new double[5]

delete不能用与定位new运算符。

此时buffer处于静态区,delete只能释放堆区的内存

//#include "test.h"
#include <iostream>
using namespace std;

#include <new>
const int BUF = 512;
int main(void)
{

    //    int n = 5;
    char buffer[3];
    double* p;
    p = new (buffer) double[3];

//    delete [] p; //不能释放
    return 0;
}

namespace

创建自己的命名空间

//#include "test.h"
#include <iostream>
using namespace std;

#include <new>
const int BUF = 512;

namespace Jill {
int a = 10;
}

int main(void)
{

//    using namespace Jill; //编译指令
using Jill::a; //声明
    cout << Jill::a << endl; //声明
    return 0;
}

using声明和using编译的区别

using声明使特定的标示符可用,using编译指令使整个名称空间可用。
1.using声明由被限定的名称和它前面的关键字using组成,如:
using Jill::fetch;
2.using编译指令由名称空间名和它前面的关键字using nameapace组成,它使名称空间中的所有名称都可用,而不需要使用作用域解析操作符:using namespace Jill

注意:使用using编译指令导入一个名称空间中所有的名称与使用多个using声明是不一样的,而更像是大量使用作用域解析
操作符。使用using声明时,就好像声明了相应的名称一样。如果某个名称已经在函数中声明了,则不能使用using声明导入相同的名称。在上面的例子中,名称空间为全局的.如果使用using编译指令导入一个已经在函数中声明的名称,则局部名称将隐藏名称空间名,就像隐藏同名的全局变量一样。不过,仍可以像上面最后一句cin那样使用作用域解析操作符。文章来源地址https://www.toymoban.com/news/detail-508352.html

到了这里,关于C++11关键字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 树结构 根据关键字过滤

    案例: 默认 过滤之后    直接看代码: 注释: 1. 用到el-tree 中的方法  2.  this.$refs.tree。。。中的 \\\"tree\\\" 跟上面绑定的一致    3.    data.Text         这个Text 与defaultProps 中label字段 一致。  

    2024年02月13日
    浏览(33)
  • Nginx 如何根据swagger关键字屏蔽页面

    1.什么是 location Nginx 中通过根据 location 块的规则来将匹配到的 URL 请求进行一系列操作,最常见的就是进行代理。Nginx 中一个 Server 可以有多个 location 配置,当请求在与多个 location 匹配时,会根据一定的 location 匹配规则和优先级来确定具体将请求分发到哪个 location。 2.loca

    2024年02月14日
    浏览(34)
  • 帝国cms内容页根据关键字调用相关内容的方法

    我们使用帝国cms的时候,需要调用当前文章的其他相关的文章,根据相关的方式,这样内页关联比较好,对于seo与用户体验来说都是非常好的 代码如下 =$or[title]? =$newstime? }}else{ $mesql2=$empire-query(\\\"select * from {$dbtbpre}ecms_news where id\\\".$navinfor[\\\'id\\\'].\\\" order by rand() desc limit 10\\\");w

    2024年02月03日
    浏览(37)
  • linux通过grep根据关键字查找日志文件上下文

    grep -C 10 keyword catalina.out 显示file文件中匹配keyword字串那行以及上下10行 grep -B 10 keyword catalina.out 显示keyword及前10行 grep -A 10 keyword catalina.out 显示keyword及后10行 grep -C 10 keyword catalina.out aaa.txt grep -o keyword catalina.out | wc -l grep -c keyword catalina.out grep -V

    2024年02月16日
    浏览(38)
  • C++11:关键字

    目录 1、noexcept:用于指定函数不会抛出异常 2、deleted functions:该函数被明确地标记为已删除 3、constexpr:表示可以在编译时求值的常量表达式函数或变量 4、 decltyp:用于推断表达式类型 5、nullptr:表示空指针常量 6、static_assert:用于在编译时进行断言 7、auto:用于自动推断

    2024年02月08日
    浏览(26)
  • C++11关键字

    根据表达式的类型自动推导类型     C++中的链接性分为外部,内部,作用域为整个文件的变量。还有无链接性的局部变量 使一个变量声明为全局变量,仅在当前文件可见,外部文件不可以使用。 static放在函数中,导致局部变量存储为静态 ,当前文件函数外部不可访问。 s

    2024年02月11日
    浏览(25)
  • python读取.txt文件中某些关键字后面的内容 并根据该数据画图

    感谢一下悦姐帮忙 然后画图,其实两个代码可以放在一个里面 最后贴个图:

    2024年02月09日
    浏览(31)
  • C++ 11 新特性 关键字

    我们先来看一段代码: 在这案例中,我们可以看到,声明为迭代器的变量前缀非常长,这样来写代码非常不美观,也不方便。auto的出现很大程度是为了解决该问题。 现在我们来回答刚才的问题: 在C++中, auto 是一个,它的作用是让编译器自动推导变量的类型,根据变

    2024年02月11日
    浏览(31)
  • 【C++】C++入门 auto关键字详解(C++11)

    前言 C语言中包括了auto,它可用于定义局部变量。但自从所有的非全局变量的缺省值假定为auto以来,auto就几乎很少使用了。 在C或者以前C++中,auto基本上可以被无视. 但是在C++11中auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器, a

    2024年02月08日
    浏览(33)
  • 【C++入门】auto关键字(C++11) + 指针空值nullptr(C++11)

    👦个人主页:@Weraphael ✍🏻作者简介:目前学习C++和算法 ✈️专栏:C++航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞👍🏻 收藏 📂 加关注✨ 本章是补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的。 随

    2024年02月04日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包