C++学习笔记3(函数高级,类和对象之封装)

函数

1、函数的默认参数

即在函数的参数列表中的形参可以有默认值
语法:返回值类型 函数名 (参数 = 默认值){}
没有自己传值才会用默认值
注意事项:
(1)若某个参数有了默认值,它之后的的所有形参必须都有默认值
(2)函数声明和函数实现只能有一个写默认值,另一个不能写(如果都写默认值,会报错说重定义默认参数)

2、函数的占位参数

即函数的形参列表里可以有占位参数,用来占位,调用函数时必须填补该位置
语法:返回值类型 函数名 (数据类型){}
占位参数可以有默认参数

3、函数重载

作用:函数名可以相同,提高复用性
条件:

  • 同一作用域下
  • 函数名称相同
  • 函数的参数类型不同或者个数不同或者顺序不同
    函数的返回值类型不能作为函数重载的条件
    引用可以作重载条件(int和const int属于)
    函数重载最好不要用默认参数
//函数重载注意事项
//1、引用作为重载条件

void func(int &a)//int &a = 10;不合法,引用必须是指向栈区或者堆区
{
	cout << "func (int &a) 调用 " << endl;
}

void func(const int &a)
{
	cout << "func (const int &a) 调用 " << endl;
}


//2、函数重载碰到函数默认参数

void func2(int a, int b = 10)
{
	cout << "func2(int a, int b = 10) 调用" << endl;
}

void func2(int a)
{
	cout << "func2(int a) 调用" << endl;
}

int main() {
	
	int a = 10;
	func(a); //调用无const,因为a本身是变量,而const修饰常量
	func(10);//调用有const


	//func2(10); //碰到默认参数产生歧义,需要避免

	system("pause");

	return 0;
}

类和对象

封装
意义
  • 将属性和行为作为一个整体
  • 将属性和行为加以权限控制
    三种权限:public(公共权限)、protected(保护权限)、private(私有权限)
    public:类内可以访问,类外可以访问
    protected:类内可以访问,类外不可以访问,子类可以访问
    private:类内可以访问,类外不可以访问,子类不可以访问
语法

class 类名 {访问权限: 属性 /行为};
注意这里{ }后有个分号;

练习
//圆周率
const double PI = 3.14;
//封装一个圆类,求圆的周长
class Circle
{
public:  //访问权限  公共的权限

	//属性
	int m_r;//半径

	//行为
	//获取到圆的周长
	double calculateZC()
	{
		//2 * pi  * r
		//获取圆的周长
		return  2 * PI * m_r;
	}
};

int main() {

	//通过圆类,创建圆的对象
	// c1就是一个具体的圆
	Circle c1;//实例化对象
	c1.m_r = 10; //给圆对象的半径 进行赋值操作

	//2 * pi * 10 = = 62.8
	cout << "圆的周长为: " << c1.calculateZC() << endl;

	system("pause");

	return 0;
}

在这里插入图片描述

struct和class的区别

默认权限的不同
struct的内容默认权限是公有
class的成员默认权限是私有

成员属性设置为私有的好处

1)、可以自己控制读写权限
2)、对于写权限,可以检测数据的有效性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值