2021-09-01C++笔记

引用和重载

内存四区
栈区(临时变量,函数体结束就释放)
堆区(程序员操作空间)
代码区(代码存储空间)
全局区(存放全局变量、静态变量、常量)
1,引用 = 给变量取别名
张三小名:三儿,三儿长一岁,张三也涨一岁
引用的数据是存在于全局区,相当于全局变量

#include<iostream>
#include<stdio.h>
using namespace std;
int test1(int a)				//值传递
{
	a=a+1;
	return a;
}
void test2(int* a)				//地址传递
{
	*a = *a + 1;
}
void test3(int& a)				//引用传递,使用引用作为参数
{
	a = a + 1;
}
void main()
{
	int a=10;
	a=test1(a);
	cout << a << endl;			//a的值并没有改变

	test2(&a);
	cout << a << endl;			//使用地址传递

	int& c = a;					//c引用a
	test3(c);					//应用传递
	cout << a << endl;
}

对于不擅长指针的程序员,可以使用引用

2,重载= 重定义函数
1、函数的参数个数不同。
2、函数的参数类型不同或者参数类型顺序不同

int a(int b);
int a(char b,int c);
int a(int c,char b);

都被认为是不同的函数

函数的默认行参和占位符

//add(10,10,10)==add(10,10,10)	如果给值,按给的来
//add(10)==add(10,20,10)		不给按默认的来
void add(int a, int b=20, int c=10);

//int =20    		占位,且默认为20,无法使用的数
void add2(int a, int = 20, int c = 10);
void add3(int a, int, int c = 10);

对象和类

new和delete
new取代了c中malloc
等同
int* p = new int == int p=new (int)malloc(sizeof(int))
delete p == free§

classs类
可加入函数成员的结构体
自带成员初始化(构造函数)和成员释放(析构函数)
析构和构造也可以自己写

构造函数会在每次使用类之前执行
析构函数会在当前函数执行结束后执行

构造函数又分为:有参构造,无参构造,拷贝构造

class MyClass
{
public:							//公有成员,在类内类外都可访问
	MyClass();
	~MyClass();
private:						//私有,仅在类内可以访问
	int a;
protected:						//受保护的成员,类内,类外都不可访问

};
MyClass::MyClass()				//构造函数,即类名
{
	a = 10;
}
MyClass::~MyClass()				//析构函数,构造函数前+~
{
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值