C++基础知识

目录

const

类成员

普通变量

类函数

特殊知识

引用

基本引用

const引用

函数返回值引用

static

修饰普通变量

修饰普通函数

修饰类成员变量

extern

struct

decltype

宏定义

sizeof()

assert()


const

------------------------------------------------------------------------

类成员

const int a;   

在构造函数中初始化化,可以使用初始化列表初始化

普通变量

  • const 引用 

const int & ra = a;

对变量a的常引用。

  • const 指针

const char* p = "aaa"; //表示指针指向的元素值不可变

char* const rp = p; //表示指针本身不可变

类函数

int fun() const ; 

const A a;

对象a只能调用常成员函数。

特殊知识

临时变量都默认为  const。

引用

------------------------------------------------------------------------

引用并不会创建新的变量,只是对原有变量的一个别名。

基本引用

int a;

int & ra = a;   

引用在声明时必须初始化。ra 等同于 a,操作会相互影响。

const引用

int a;

const int & ra = a;   

ra不能进行赋值等左值操作。

函数返回值引用

int fun ();    //这个一般情况,函数会返回一个临时int变量。

int & fun2();  //返回引用值,不会新创建变量。

int a = fun2();  和  int & ra = fun2() 都是正确的。

static

------------------------------------------------------------------------

修饰普通变量

修改存储区域和生命周期。

存储区域:静态区;声明周期:在运行main函数之前就已经初始化了,没有显示初始化就会默认初始化。

修饰普通函数

修改函数范围,仅在当前文件可以使用该函数。

修饰类成员变量

静态成员变量,仅有一个该变量所有类对象共用。

初始化:

int Student::m_total = 0;

静态成员变量在初始化时不能再加 static,但必须要有数据类型。被 private、protected、public 修饰的静态成员变量都可以用这种方式初始化。

extern

------------------------------------------------------------------------

在声明时修饰变量或者函数,时变量或函数可以全局使用。

变量声明之后需要初始化:

  • “global.h” 中进行声明

extern int g_iInt;

extern void fun();

  • "global.cpp"中进行初始化(文件名可以任意取,但是要包含上面那个头文件)

int g_iInt = 5;

void fun()  {   }

struct

------------------------------------------------------------------------

typedef   struct   myClass{

        int   i;

}S;

相当于

typedef   struct   myClass{

        int   i;

};

typedef    struct   myClass   S;

decltype

------------------------------------------------------------------------

得到变量或者表达式的类型。

宏定义

------------------------------------------------------------------------

全局替换。

#define S(a,b) a*b

int i = S(2,3);   ----->   int i = 2*3;

sizeof()

------------------------------------------------------------------------

  • sizeof 对数组,得到整个数组所占空间大小。
  • sizeof 对指针,得到指针本身所占空间大小。

assert()

------------------------------------------------------------------------

断言,是宏,而非函数。assert 宏的原型定义在 <assert.h>(C)、<cassert>(C++)中,其作用是如果它的条件返回错误,则终止程序执行。可以通过定义 NDEBUG 来关闭 assert,但是需要在源代码的开头,include <assert.h> 之前。

   assert() 使用

#define NDEBUG          // 加上这行,则 assert 不可用
#include <assert.h>

assert( p != NULL );    // assert 不可用

TO BE CONTINUE......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值