栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++const成员

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++const成员

const数据成员

~const类型变量--->常属性--->不可以修改,只读模式 --->一旦做了第一次初始化就不可以修改

~必须采用初始化参数列表方式进行初始化

class Student
{
public:
	Student(string name, int num) :num(num)
	{
		Student::name = name;  //可以赋值的方式,也可以用初始化列表的方式
		//Student::num = 1001;  报错:const数据成员必须要用初始化参数列表方式初始化
	}
	void print() 
	{
		
		cout << name << " " << num << endl;
	}

protected:
	string name;
	const int num;		//const数据成员
};
int main() 
{
	Student mm("对象", 18);
	mm.print();				//普通对象调用普通函数
	
	return 0;
}
const成员函数

~写法上, const写在函数后面

~常成员函数不能修改数据成员--->只读数据成员

~常成员函数可以与普通函数同时存在

        ·普通函数和常成员函数相同时,普通对象优先调用普通函数----->门当户对

         ·普通对象可以调用常成员函数(只存在常成员函数的时候)

using namespace std;
class Student
{
public:
	Student(string name, int num) :num(num)
	{
		Student::name = name; 
		
	}
	void print() 
	{
		cout << name << " " << num << endl;
	}
	//常成员函数:函数名可以完全一样
	void print()const 
	{    
      
		cout << "常成员函数" << endl;
	}
protected:
	string name;
	const int num;		//const数据成员
};
int main() 
{
	Student mm("对象", 18);
	mm.print();				//普通对象调用普通函数
	const Student cmm("常对象", 20);
	cmm.print();			//常对象调用常成员函数
	return 0;
}

ps:两个函数都有,想调用const成员函数怎么办?用const对象

const对象

~用const修饰的对象

~常对象只能调用常成员函数---->不能调用普通函数

ps:普通对象也不能强制调用const成员函数(当存在普通函数的时候)

class Student
{
public:
	Student(string name, int num) :num(num)
	{
		Student::name = name; 
		
	}
	void print() 
	{
		cout << name << " " << num << endl;
	}
	void print()const 
	{    
	    cout << "常成员函数" << endl;
	}
//普通函数
  void printData() 
	{
		cout << "普通函数" << endl;
	}

protected:
	string name;
	const int num;		//const数据成员
};
  
int main() 
{
	
	const Student cmm("常对象", 20);
	cmm.Data();			//报错:不能调用普通函数
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/587906.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号