2021.12.6 笔记:类和对象

本文介绍了C++中的基本概念,包括bool类型的使用、引用作为对象的别名、函数重载的实现、缺省参数的设定以及内联函数和动态内存分配。通过示例代码展示了如何定义和使用这些特性,强调了它们在程序设计中的作用和优势。
摘要由CSDN通过智能技术生成

bool类型

  1. 定义bool类型的全局变量
  2. 定义bool类型的常量
  3. 定义bool类型的指针
  4. 定义bool类型的数组
#define bool   //bool是用1和0区分真假。
#define ture   //1(真)
#define false  //0(假)
//在c++中bool还可以拿来重载
//比如重载运算符!=,==,<,>,<=,>=
	bool operator == (CMyVector<T> const &srcVector)const;
	bool operator != (CMyVector<T> const &srcVector)const;
	bool operator > (CMyVector<T> const &srcVector)const;
	bool operator >= (CMyVector<T> const &srcVector)const;
	bool operator < (CMyVector<T> const &srcVector)const;
	bool operator <= (CMyVector<T> const &srcVector)const;

关于bool重载详细用法可以参考文章:vector 笔记c++

引用(&)变量的别名

引用是引入了对象的一个同义词。定义引用的方法和指针相似,只是用&代替了*号。引用(reference)是c++对c语言的重要扩充。对引用的操作与对变量直接操作完全一样。

格式为:类型 &变量名 =(定义过的变量名);

引用的特点:

  1. 引用可以直接当别名使用,但是引用只能在初始化的时候引用一次 ,不能更改为转而引用其他变量(从始至终);
  2. 引用是取a的地址到b,用b来表示a。指针不一样,指针类似拷贝。
void TestReference1()
{
	int a = 8;
	int &b = a;
	
	cout << "a=" << &a <<" "<<"b=" << &b << endl;//这是直接用b引用a的地址
}

引用的优点:

1、函数参数,引用传递比值传递效率高,比指针节约空间。
2、相对而言,引用比指针更安全
3、sizeof指针对象和引用对象的意义不一样。sizeof引用得到的是所指向的变量的大小,而sizeof指针是对象地址的大小。
4、关于引用的自增和指针的自增参考:引用和指针自增的不同
5、关于引用的解引用参考:c语言 解引用

函数重载:同一作用域,函数名相同参数表不同

重载要满足的三要素:
1、同一个作用域;
2、函数名相同;
3、参数要不同;要么个数不一样,要么参数不一样;
至于返回值不同,并不影响重载
例子:

void TestReference1()
{
	int a = 8;
	int &b = a;

	cout << "a=" << &a << " " << "b=" << &b  << endl;//这是直接用b引用a的地址
}

void TestReference1(int a)
{
	int &b = a;

	cout << "a=" << &a << " " << "b=" << &b << endl;//这是直接用b引用a的地址
}

缺省参数:为函数指定缺省值

缺省参数有两个种类:
1.全缺省参数:当作实参传入形参一样就好了

#include<iostream>
using namespace std;
void TestTDP(int a=0 , int b=5 , int c=7)//全缺省参数
{
	cout << a <<"  "<< b<<"  "<<c<<endl;
}
int main()
{

	TestTDP(1, 2);//从左边往右边依次传递参数
	system("pause");
}

2.半缺省参数:由于有个参数没有给形参初始化,所以需要从左边往右边逐个迭代参数。

#include<iostream>
using namespace std;
void TestTDP2(int a ,int b=0)//半缺省参数
{
	cout << a << "  " << b << endl;
}
int main()
{

	TestTDP2(1);//从右边往左边依次传递参数
	system("pause");
}

看完代码可以得知:
1.当调用中没有参数的时候,使用的就是定义函数的默认值

2.当调用中含有参数,使用的是指定的实参

哑元:占位置的;兼容老版本;形成函数重载

哑元的优点
1、重载方便;
2、版本更新时去掉不用的值时只要删除形参,这一个数据就会失效。

#include<iostream>
using namespace std;
void TestYaYuan(int  ,int b)//哑元
{
	cout << "  " << b << endl;
}
int main()
{

	TestYaYuan(1,2);//此处传入的参数1会失效;
	system("pause");
}

内联:inline

暂无描述:
详细先参考:内联函数

动态分配内存:new delete、

暂无描述:
详细先参考:动态内存分配 (详解版)

名字空间:using namespace std

1、namespace创建
2、作用域限定符::表示“的”
3、名字空间合并
4、声明和定义分开
5、名字空间指令using namespace
6、名字空间嵌套
7、名字空间别名typedef

其他内容暂无:
详细参考:C++名字空间详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳一航

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值