const详解
- const修饰普通类型的变量
- 表示变量不可重复赋值
- const前加volatile修饰表示变量可以被重复赋值
- const修饰指针变量
- const int *p=8;指针指向的内容不可变
- int* const p=&a;指针指向的内存地址不可变
- const int* const p=&a;指向的内容和内存地址都不可变
- const修饰参数传递和函数返回值
- const修饰参数传递:一般不需要const修饰,函数会自动产生临时变量复制实参;参数为指针时,可防止指针被篡改;
- const修饰函数返回值:修饰内置类型返回值与不修饰作用一样;修饰自定义类型时,其不能作为左值使用。
- const修饰类成员函数
- const关键字不能与static关键字同时使用,静态成员函数不含this指针,不能实例化,const成员函数必须具体到某一实例。
- const修饰成员函数时,不能修改对象中的成员变量值,除非变量用mutable关键字修饰
内联函数(inline)
定义:
对于内联函数,编译器在编译时,会把该函数的代码副本放置在每个调用该函数的地方。其它函数,都是在运行时替代。
特征:
- 内联不超过10行的函数
- 内联函数内不允许使用循环语句和开关语句
- 析构函数有隐含的成员和基类析构函数被调用
前置声明
在源文件中,需要引入操作类的头文件,才能够调用其成员变量和函数。
A.h:
class B;
class A{
B* b;
}
B.h:
class A;
Class B{
A* a;
}