c++ 基础知识-const字符-private-public用法

c++ 基础知识-const字符-private-public用法

private私有成员,包括变量,成员函数,其中私有成员变量和私有成员函数均可以通过public中成员函数调用,但是不能通过定义的类调用。

注意:私有成员函数也不能调用私有成员变量

const 常量,修饰变量,变量不可以修改,修饰函数,在函数前面修饰,一般是修饰函数返回值不可以修改,在函数后面修饰,则该函数不可以修改数据成员的值

注意:const 修饰类,该类默认调用常成员函数

// 类
class A
{
//私有成员
private:
	const int a;                // 常对象成员,可以使用初始化列表或者类内初始化,不可以被修改
	int b;   //对象成员
	void getValueTest();//函数
public:
	// 构造函数
	A() : a(0) { };//默认构造函数 - 无参数-默认a=0
	A(int x) : a(x) { };        // 初始化列表-有参数-重载

	// const可用于对重载函数的区分
	int getValue();             // 普通成员函数
	int getValue() const;       // 常成员函数,不得修改类中的任何数据成员的值
};

void A::getValueTest()
{
	//return a;//私有成员函数不能访问私有成员变量
	cout<<"getValueTest"<<endl;
}

 int  A::getValue() const
{
	//b = 6;//不能修改
	return a;
}

 int  A::getValue()
 {
 	 //a = 6;//不能修改
	 b = 6;//可以修改
	 getValueTest();//可以访问私有成员函数
	 return b;
 }




int main()  
{  	
	A aaa(4);
	//aaa.getValueTest();//不能直接调用,只能通过public内函数调用
	cout<<aaa.getValue()<<endl;
	const A aaaa(5);// 常对象,只能调用常成员函数
	cout<<aaaa.getValue()<<endl;//只能调用常成员函数
	return true;
} 

此外,const还有以下用途

void function()
{
	// 对象
	A b;                        // 普通对象,可以调用全部成员函数
	const A a;                  // 常对象,只能调用常成员函数
	const A *p = &a;            // 指针变量,指向常对象
	const A &q = a;             // 指向常对象的引用

	// 指针
	char greeting[] = "Hello";
	char* p1 = greeting;                // 指针变量,指向字符数组变量
	const char* p2 = greeting;          // 指针变量,指向字符数组常量(const 后面是 char,说明指向的字符(char)不可改变)
	char* const p3 = greeting;          // 自身是常量的指针,指向字符数组变量(const 后面是 p3,说明 p3 指针自身不可改变)
	const char* const p4 = greeting;    // 自身是常量的指针,指向字符数组常量
}
// 函数
void function1(const int Var);           // 传递过来的参数在函数内不可变
void function2(const char* Var);         // 参数指针所指内容为常量
void function3(char* const Var);         // 参数指针为常量
void function4(const int& Var);          // 引用参数在函数内为常量

// 函数返回值
const int function5();      // 返回一个常数
const int* function6();     // 返回一个指向常量的指针变量,使用:const int *p = function6();
int* const function7();     // 返回一个指向变量的常指针,使用:int* const p = function7();

来源

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值