一、引用的相关知识
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:培养输送优质性人才