博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C/CPP-成员属性

Posted on 2023-03-13 09:38  乔55  阅读(13)  评论(0编辑  收藏  举报

基本概念

// 常函数
- void getK(Time* const this)const{}
- const在函数后边的含义是,该成员函数不能修改类成员变量
- 既然是针对于成员函数,那么普通构造函数就不能在其后边加const
- 只有成员函数才能声明为const函数,普通函数和构造函数都不可以声明为const函数

// 常对象
- const Time myt;  // 定义常对象
- 常对象只能调用常函数,不能调用普通函数
- 非常对象可以调用所有成员函数,包括const成员函数

// const成员变量
- 只能用初始化列表进行const成员变量的初始化,无法在构造函数体内进行初始化



// mutable成员变量
- mutable声明的成员变量,哪怕被声明为const,或者在const函数中,仍可被修改
- 引入mutable,可以突破const的限制

// explict声明的构造函数:explict Test(int data);
- 禁止该构造函数发生隐式类型转换


// Test()=default
- 编译器为Test()默认构造函数自动生成函数体
- 带参数的函数不可以使用=default
- 普通的函数也不可以使用=default


// Test()=delete
- 不允许编译器生成默认构造函数,即:让程序员显式地使用该函数。

// voerride:虚函数专用
- 在子类重写父类虚函数时,可以直接在函数后加override,virtual void fun()override{}


// final:虚函数专用
- 在父类虚函数后加final声明,不允许子类重写该虚函数