欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

const

程序员文章站 2022-03-16 08:57:01
...

C 修饰常变量 编译阶段 常变量有没有做左值
C++ 修饰常量 编译阶段 使用到常量的地方把常量替换成常量初始化的值

const 指针 引用的结合
常引用可以引用立即数
立即数放到临时量中
常引用来引用临时量

形参加上const的作用
1.防止实参被修改
2.引用立即数

const &做形参
1.避免实参被修改
2.接收不能取地址的数据

引用做形参 普通变量做形参
1.引用修改实参的值
2.引用不能引用立即数,部分实参无法调用

不能返回局部变量的地址或引用

类中的const

1.修饰的成员变量 ==》 一定要在构造函数的初始化列表中做初始化

	Test(int a, int b) :mb(b)
	{
		ma = a;
	}

2.修饰的对象 常对象
       常对象只能调用常方法
       常对象不能调用普通方法

pubic:
	void Show()const//Test* const  ==> const Test* const
	{
		std::cout << ma << std::endl;
		std::cout << mb << std::endl;
		this->Print();
	}
	
int main()
{
	const Test test1(30, 40);
	test1.Show();// const Test*
	return 0;
}

常方法

       普通对象和常对象都可以调用
       普通方法能调用常方法
       常方法来调用普通方法

	void Print()//Test* const this
	{
	}
class  Test
{
public:
	Test(int a, int b) :mb(b)
	{
		ma = a;
	}
	void Show()const//Test* const  ==> const Test* const
	{
		std::cout << ma << std::endl;
		std::cout << mb << std::endl;
		this->Print();
	}
	void Print()//Test* const this
	{
	}
private:
	int ma;
	int mb;
};
int main()
{
	Test test(10,20);
	test.Show();//异义

	const Test test1(30, 40);
	test1.Show();// const Test*
	return 0;
}
相关标签: const