c++命名空间、访问修饰符、函数重载、类、构造函数、析构函数,This关键字

本文介绍了C++中的命名空间,用于避免标识符冲突,详细阐述了引用类型的特点及使用,如必须初始化、不可为空及不能改变引用关系。接着讨论了函数重载的概念,强调了参数列表的重要性而非返回类型。同时,讲解了类的基本概念,包括构造函数和析构函数的作用,以及this关键字在访问成员时的用途。
摘要由CSDN通过智能技术生成

命名空间

作用:防止变量或者函数等重名,引起访问不正确(fp重复定义错误
定义命名空间:

namespace xxx
{
//里面可以包含变量、函数、类、typrdef、#define等。
print();
}

访问方式:(与接续操作符,还可以使用using)
命名空间::函数名()

xxx::print()
全局:
::print();

c++输入输出:cin、cout
bool类型变量输出:cout<<a<<boolalpha<<endl;

- 引用类型:

#include<iostream>
using namespace std;
int main()
{
	int a=100;
	int &b=a;//引用类型,取地址符b即为a的地址,b等同于a
	cout<<&b<<" "<<&a<<endl;//两者输出地址相同
	b=10;
	cout<<a<<endl;
	return 0;
}

在这里插入图片描述

- 引用类型特点:
1.引用被创建必须初始化(对应指针则可以在任何时候被初始化)
2.不能有空引用,引用必须与合法的存储单元关联(指针则可以为空指针)
3.一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指向的对象)

访问修饰符

在这里插入图片描述

函数重载

函数重载指的是,在同一个作用域下,可以具有同一个函数名,不同参数列表的函数。重载函数一般用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对程序可读性有很大好处。
特点:
1.相同作用域下,函数名相同参数列表不同(包括参数个数,参数类型)
2.只有返回值不同不算函数重载
※函数重载的规则:
函数名必须相同
参数列表必须不同(个数,类型,参数排列顺序等)
返回类型不做为判断是否重载的要素
仅仅返回值不同不足以为函数重

类:人类,动物类,植物类,学生类
对象:我,大黄,玫瑰花,学生

构造函数(太过复杂,具体会单独出一篇文章)

构造函数的名字和类名相同,没有返回值,可以重载(重载构造函数),不需要用户显示的调用,而是创建对象时自动执行。

构造函数的类型
默认构造函数(缺省构造函数),(初始化构造函数)(有参构造函数)一般构造函数(重载构造函数),复制构造函数(拷贝构造函数),转换构造函数

class human()
{
	human();//默认构造函数
	human(int num,int age);//初始化构造函数
	human(human&本类对象);//复制构造函数
	huamn(int s);//形参是其他类型变量,且只有一个

析构函数

创建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作,例如释放分配的内存、关闭打开的文件等,这个函数就是析构函数。
析构函数也是一种特殊的成员函数,没有返回值,不需要程序员显式调用(程序员也没法显式调用),而是在销毁对象时自动执行。构造函数的名字和类名相同,而析构函数的名字是在类名前面加一个
~ 符号。
注意:析构函数没有参数,不能被重载因此一个类只能有一个析构函数。如果用户没有定义,编译器会自动生成一个默认的析构函数。
析构函数在对象被销毁时调用,而对象的销毁时机与它所在的内存区域有关。
在所有函数之外创建的对象是全局对象,它和全局变量类似,位于内存分区中的全局数据区,程序在结束执行时会调用这些对象的析构函数。
在函数内部创建的对象是局部对象,它和局部变量类似,位于栈区,函数执行结束时会调用这些对象的析构函数。
new 创建的对象位于堆区,通过 delete 删除时才会调用析构函数;
如果没有 delete,析构函数就不会被执行。

this关键字

this是c++的一个关键字,也是一个const指针,它指向当前对象,通过它可以访问当前对象所有成员。

  1. this区分成员变量和局部变量
  2. this代表调用当前函数的对象的地址常量
  3. 静态成员函数与普通成员函数的根本区别在于:普通成员函数有 this 指针,可以访问类中的任意成员;而静态成员函数没有 this 指针,只能访问静态成员(包括静态成员变量和静态成员函数)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值