C++11关键字decltype用途
关键字decltype将变量的类型声明为表达式指定的类型。下面的语句的含义是,让y的类型与x相同,其中x是一个表达式。decltype (x) y;decltype的工作原理比auto复杂,可以指定类型为引用和const。
C++基本的语法部份,基本数据类型、变量声明、变量定义、函数声明、函数定义、关键字等
关键字decltype将变量的类型声明为表达式指定的类型。下面的语句的含义是,让y的类型与x相同,其中x是一个表达式。decltype (x) y;decltype的工作原理比auto复杂,可以指定类型为引用和const。
C++11新增类型long long和unsigned long long,以支持64位(或更宽)的整型;新增为型char16_t和char32_t,以支持16位和32位的字符表示。
友元关键字是friend,也就是朋友的意思。是不是友元必须另一个类中声明,函数或类自己说是别人的友元。为什么要友元friend?有时在写代码时,类外要访问私有成员,这种情况下就只能声明成友元,不然无法防问类内私有成员。C++支持两种友元:友元函数、友元类。
mutable是C++中的一个关键字,意思是可变的。mutable主要用途就是针对const函数。如果没有const关键字,也就没有mutable关键字。先来看如下代码:
先来看一段代码: circle c1;
string strc21 = c1; //这句编译通不过
cout<
析构函数Destructor与构造函数是相反的,构造函数一般完成些初始化工作,哪么析构函数应该就是完成一些收尾工作。析构函数是在C++对象销毁的时候自己掉用。哪什么时候对象会被销毁?两种情况:1.当某个对象离开作用域时;? ?作用域不明白的请看这篇:C++支持哪些作用域2.当调用delete删除某个对象进;析构函数的定义:析构函数以“~”引起,函数名与类名一样,不能有返回值,参数表必须为空。下面写段代码来分析析构函数的调用。
上一篇讲了转换构造函数有什么用途,知道了转换构造函数经常会在不经意就被调用,当不希望发生转换时,哪有什么办法可以让它不要隐式调用转换吗?是有的,就是关键字explicit作用。以上一篇代码来修改,来介绍explicit:
在C++中,当一个构造函数只有一个参数,而且该参数又不是本类的const引用时,这种构造函数称为转换构造函数。转换构造函数要如何理解,从字面上将转换和构造函数分开理解。1.发生了转换,如何发生转换的?2.转换构造函数也是一个构造函数,完全可以当构造函数一样使用先带着这两个问题来看段代码就会明白:
当对象开始创建时,就会调用构造函数。一般会在构造函数中完成一些初始化工作,比如成员的赋值等。构造函数也是成员函数,是特殊的成员函数。
默认构造函数
带参数构造函数
转换构造函数:
拷贝构造函数:
类型取别名,可以用typedef关键字,一般将类型名比较长的,再取个别名,在使用时会更方便。写几个用typedef关键字取的别名: