const有关(常函数、常成员),少量的static,引用&

  • static成员在内存中只存在一个副本,且其不是类和对象私有的,类的成员函数也只有一个副本。
  • 若成员数据是static类型,要在类外进行初始化,否则默认为0;
  • auto变量的一般值是随机的,因为系统在分配内存时,只是将地址分配给变量,并没有内存中存在的数据进行初始化,所以是随机值。
非静态成员

非静态成员是通过对象来访问

静态成员

静态成员是通过类限定来访问
Student::print();

&
  • 引用直接操纵对象,具有间接寻址功能。
  • 引用必须初始化。
  • 引用一旦初始化便不能指向其他对象,即不能改变对象换成其他对象。
  • 引用变量时直接加上&,但是在直接引用常量时,要在前面加上const。
  • 传地址调用是指针间接对实参操作。
  • 引用传递比地址传递调用更加安全,但是引用调用底层是用指针实现的。
  • 函数值类型为引用可对指定的单元进行修改。
    https://www.cnblogs.com/this-543273659/archive/2011/09/18/2180575.html
左右值
  • 右值:数据值,存储在某个内存地址中,右值是被读取的值,文字常量和变量都可以被用于右值。
  • 左值:地址值,即存储数据值的那块内存地址,文字常量不能被用作左值。
const

const与宏常量
const常量有数据类型检查,而宏常量没有数据类型检查。

const char *name="zhanghua";
char s[]="xiaowang";
name=s;       		//正确
*name="li";   		//错误
地址可变,内容不可以直接变
char* const name="name";
name=s;    //错误
不可以修改地址
常对象
  • const Time t={};常对象必须被初始化,且不可被更新。
  • 常对象不能调用普通成员函数,因为无法判断是否会修改数据成员的值。若是想调用这个普通函数,可以将函数声明为const,如果想要修改数据成员的值,可以将该数据成员声明为mutable。
常成员
  • 常数据成员必须通过初始化列表进行初始化。
  • const在声明和定义函数时,都要有const关键字,调用时不必加上const。
  • 常成员函数不能更新对象的数据成员,也不能调用该类中没有const修饰的成员函数。
数据成员非const成员函数const成员函数
非const数据成员可以引用,也可以改变值可以引用,但是不可以改变值
const数据成员可以引用,但是不可以改变值可以引用,不可以改变值
const对象的数据成员不允许可以引用,不可以改变值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值