栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++关键字 const static inline delete default register

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++关键字 const static inline delete default register

const:

const 类型的对象在程序执行期间不能被修改改变。

const int a
const 指针
int main()
{

    int a=23;
    int b=67;
    int c=90;

    int* const p0=&a; 	//p0为指针,指向a的内存地址,指向地址不可改变 (const修饰p0,不可改变p0指向的内存地址) 
    int const* p1=&b; //同const int* p1=&b;  p1为指针,指向b的内存地址, 不可通过*p1方式改变p1指向的值,不影响b的值修改(const修饰*p1,*p1不可改变)
    const int* const p2=&c; // p2为指针,指向c的内存单元,指向地址不可改变,不可通过*p2方式改变p2指向的值,不影响c的值修改(const修饰p2与*p2,p2和*p2都不可改变)
  // ( const int* const p2=&c可以理解为const int* (const p2)=&c,括号内的const修饰p2,然后把(const p2)看成一个整体进行理解,这种写法错误,但是可以借助这种方式理解)
	*p0=66;           //如果写成p0=&b;则会报错 
	cout<<*p0< 
const函数 
void fun1(const int a)//防止临时变量a被修改,一般不用
{
    cout<
    cout<<*p; // 可以通过修改*p来改变p指向内存地址的值
}
void fun3(const int &m)//防止引用的方式修改实参
{
    cout<
	cout<
	cout< 
const在类中的使用 

通过const修饰数据成员表示数据成员在初始化后不能修改,且const数据成员只能通过构造函数初始化列表初始化;
通过const修饰成员函数表示函数中不会修改类中的数据成员;
通过const修饰对象表示对象是一个常量,且常量对象只能调用类的成员函数。

class A{
    public:
        const int* const fun() const;//返回值是一个指针,第一个const说明返回值不能修改,第二个const说明指针无法修改,第三个const说明此函数不会修改类中的数据成员
}
delete和default:

1、在函数声明后加入=delete即可将该函数标记,一旦被调用则会导致编译错误。可以将旧版本的函数标记delete。
注意:如果一个函数声明加了delete之后,不能再对其进行定义,可以理解为禁用,不然会报错

#include 
class Person {

private:
    void deleteFun() = delete;
};

在函数声明后面加default,相当于对此函数进行默认的定义(一般在构造函数和析构函数里使用)。

#include 
class Person {
    Person() = default;
private:
};
static:

static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁

#include 
using namespace std;
void fun()
{
    static int num1 = 2;//在局部函数执行结束后,不会回收num1的空间
    int num2 = 2; //在局部函数执行结束后,便回收num2的空间
    num1++;num2++;
    cout<<"num1的值为:"<
    int i=5;
    while(i>0)
    {
        i--;
        fun();
    }
    return 0;
}

输出结果:

num1的值为:3    num2的值为:3
num1的值为:4    num2的值为:3
num1的值为:5    num2的值为:3
num1的值为:6    num2的值为:3
num1的值为:7    num2的值为:3
inline:

内联关键字,为了消除函数调用的时空开销,C++ 提供一种提高效率的方法,即在编译时将函数调用处用函数体替换,类似于C语言中的宏展开。这种在函数调用处直接嵌入函数体的函数称为内联函数(Inline Function),又称内嵌函数或者内置函数。内联函数一般比较短。

#include 
using namespace std;
//内联函数,交换两个数的值
inline void swap(int *a, int *b){
    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}
int main(){
    int m, n;
    cin>>m>>n;
    cout< 

函数调用的过程:
函数是一个可以重复使用的代码块,CPU 会一条一条地挨着执行其中的代码。CPU 在执行主调函数代码时如果遇到了被调函数,主调函数就会暂停,CPU 转而执行被调函数的代码;被调函数执行完毕后再返回到主调函数,主调函数根据刚才的状态继续往下执行

register:

register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量,只用于需要快速访问的变量;

register int count;//count变量存储在寄存器中,访问速度快
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/846763.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号