[C++] 涉及类的关键词

C++11里面有许多关键词,以前稍微学过,但是不多用。这几天看一些代码,重温一下这些关键词。

位于函数声明尾部

datatype function_name() keyword;
const

const关键词表示该函数不修改类成员变量。

overide

overide表示该函数覆盖掉父类同签名函数的声明。没有overide关键词时,父类的同名函数被hide,需要使用

using fatherClass::function_name;

才能调用父类声明的函数。

= 0

该关键词与virtual一起使用,指明该函数为纯虚函数,子类必须定义。

= default

在C++11中,为了解决特殊成员函数的问题,例如程序员定义的默认构造函数X::X() {}效率并不如编译器自动生成的默认构造函数,引入了defaulted特殊成员函数。在特殊成员函数后面加上= default后,编译器便会自动生成较高效率的默认构造函数。

C++中类的特殊成员函数有:Default constructor, Copy constructor, Move constructor (C++11), Copy assignment operator, Move assignment operator (C++11), Destructor.

= delete

在C++11中,为了解决成员函数禁用的问题,引入了delete关键词。成员函数禁用的情况主要有两种:(1)我们想禁止默认复制构造、默认复制赋值;(2)我们不希望子类调用父类的某些函数。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.