Week7-C++基础知识2(引用、重载、类、封装和访问权限的学习)

一、引用的相关知识
1、引用的基本语法(引用即起别名)
Type &别名=原名
2、引用的相关注意事项
1、引用必须初始化,且初始化后不可修改
2、可以对数组建立引用(int (&Arr)[10]=arr; //arr已经初始化)
3、引用必须引一块合法的内存空间
4、不要引用局部变量
5、如果函数的返回值是引用,则这个函数调用可以作为左值
6、引用的本质是一个指针常量,可以用一级指针引用可以代替二级指针
7、常量引用,修饰形参为只读(const int &a = 10; //会分配内存)
二、重载的相关知识
1、函数名称相同 又在同一个作用域下
2、函数参数个数不同、类型不同、顺序不同都可以满足重载条件
3、函数的返回值不可以作为函数重载条件
4、当函数重载碰到了函数默认参数 要注意避免二义性
三、类的创建和使用
1、方法步骤
class 类名{
public 公共权限
设置 成员属性
设置 成员函数
}
使用类 创建对象 实例化对象
类名 对象名
通过对象 来设置属性 调用成员函数
具体例子如下:

#define _CRT_SECURE_NO_WARNINGS	//如果移植的程序出现一堆警告则需要加上这一句,起兼容作用
#include<iostream>
using namespace std;

const double pi = 3.14;	//用const代替宏定义

// 1.	设计一个类,求圆的周长
// 周长公式  2 * pi * r
class Circle //class代表声明一个类 后面紧跟的是类的名称
{
public: //公共权限

//求圆的周长
	//在类里面写函数  成员函数
	double calculateZC()
	{
		return 2 * pi * m_R;
	}
	//设置半径的成员方法
	//成员函数 可以修改成员属性
	void setR(int r)
	{
		m_R = r;
	}
	//半径  成员属性
	int m_R;
};
void test01()
{
	//通过类 来创建一个圆 
	Circle c1; //圆 (对象)
	//c1.m_R = 10; //给这个对象来进行半径的赋值
	//通过成员函数 间接给圆设置半径
	c1.setR(10);
	//输出c1的周长
	cout << "c1的周长为: " << c1.calculateZC() << endl;
}
int main(){
	test01();
	system("pause");
	return EXIT_SUCCESS;
}

运行结果如图:
在这里插入图片描述
四、C++的封装和访问权限
1、C++的封装:将属性和行为作为一个整体,来表示生活中具体的事物
2、C++的访问权限有三个,如下:
① public 是类内类外都可以访问到
② protected 类内可以访问到,类外不可以访问到(子类可以访问)
③ private 类内可以访问到,类外不可以访问到(子类不可以访问)
(注意:class的默认访问权限是private;struct的默认访问权限是public)
在使用过程中,建议将属性设为私有,对外提供公共接口进行设置(set)或获取(get)访问,具体代码示例如下:

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include <string>
using namespace std;
class Person
{
public:
	//设置年龄
	void setAge(int age)
	{
		if (age < 0 || age > 100)
		{
			cout << "你这个老妖精" << endl;
			return;
		}
		m_Age = age;
	}
	//获取年龄 读权限
	int getAge()
	{
		return m_Age;
	}
	//读姓名
	string getName()
	{
		return m_Name;
	}
	//写姓名
	void setName(string name)
	{
		m_Name = name;
	}
	//只写的情人
	void setLover(string lover)
	{
		m_lover = lover;
	}
private: //类外不可访问,类内可以访问
	int m_Age = 0; //年龄 读写
	string m_Name; //公有权限  读写
	string m_lover; //情人  只写

};
void test01()
{
	Person p1;
	p1.setName("老王");
	cout << "p1的姓名:" << p1.getName() << endl;
	//年龄
	p1.setAge(120);
	cout << "p1的年龄:" << p1.getAge() << endl;
	//情人 只能设置 外部我不告诉你
	p1.setLover("仓井");
}
int main() {
	test01();
	system("pause");
	return EXIT_SUCCESS;
}

运行结果如图:
在这里插入图片描述
欢迎关注技术公众号,获取更多软件学习干货!
在这里插入图片描述

我们能为你提供什么?
技术辅导:C++、Java、嵌入式软件/硬件
项目辅导:软件/硬件项目、大厂实训项目
就业辅导:就业全流程辅导、技术创业支持
对接企业HR:培养输送优质性人才

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值