C++学习const成员

const成员:被const修饰的成员变量、非静态成员函数

const成员变量:

  • 必须要初始化(类内部初始化),可以在声明的时候直接初始化赋值
  • 非static的const成员变量还可以在初始化列表中初始化

const成员函数(非静态):

  • const关键字写在参数列表后面,函数的声明和实现都必须带const
  • 内部不能修改非静态成员变量
  • 内部只能调用const成员函数、static成员函数
  • const成员函数和非const成员函数可以构成重载
  • 非const对象(指针)优先调用非const成员函数
  • const对象(指针)只能调用const成员函数,static成员函数
#include<iostream>
using namespace std;

class Car{
public:
	int m_no;
	//【1】const成员变量
	const int m_price = 0;

	const int m_price;
	Car():m_price(0) { }

	static const int m_price = 0;

	//【2】const成员函数
	void run() const{
		cout << "run()" << endl;

		//m_no = 10;//内部不能修改非静态成员变量
		//test();内部不能调用非静态成员函数(只能调用const或static成员函数)
	}
	void run() {}//和const成员函数构成重载

	void test(){}
	static void test() {}
};
int mian() {
	Car car;
	car.run();//优先调用void run() {}

	Car *p;
	p->run();//同上

	const Car car;
	car.run();//只能调用void run() const{}或static void test(){}

	getchar();
	return 0;
}

引用类型成员(不考虑static情况):
1.声明时初始化
2.初始化列表初始化

 class Car{
	int age;
	int &m_price = age;

public:
	Car(int &price) :m_price(price) { }
};
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值