c++基础学习笔记7

构造函数、析构函数

#include<iostream>
using namespace std;
#include<string>
#include <ctime>


class person
{
public:
	
	person(int a, int b, int c) :m_a(a), m_b(b), m_c(c) {}
	void printp()
	{
		cout << m_a << m_b << m_c << endl;
	}
private:
	int m_a;
	int m_b;
	int m_c;
};

 int main()
{	
	 /*构造函数初始化,析构函数清理
	 构造函数:类名(){}
	 1.没有返回值也不写void
	 2.函数名称和类名相同
	 3.可以有参数,因此可以重载
	 4.创建对象时,构造函数会自动调用,而且只调用一次
	 析构函数:
	 1.没有返回值也不写void
	 2.函数名称和类名相同,名称前加~
	 3.没有参数,因此不可以重载
	 4.销毁对象时,析构函数会自动调用,而且只调用一次
	 构造函数分类和调用有参构造和无参构造
	 拷贝构造函数 per(const per &p)
	 调用:1.括号法:per p0 默认构造函数调用;per p1(10)有参构造函数调用; per p2(p1)拷贝构造函数
	 显示法:per p0;                          per p2=per(10);             per p3=per(p2)
	 隐式转换法:per p2=10;//相当于写了per p2=per(10),有参构造
				 per p5=p4;//拷贝构造
	构造函数的调用规则:
	1.创建一个类,c++编译器会给每个类都添加至少3个函数:默认构造(空实现)、析构函数(空实现)、拷贝构造(值拷贝)
	2.如果写了有参构造函数,编译器不会在提供默认构造,依然提供拷贝构造
	 初始化列表,用来初始化属性,语法:构造函数():属性1(值1),属性2(值2)...{}
	 当其他类对象作为本类成员,构造时候先构造类对象,在构造自身,析构的顺序与构造相反
	 静态成员函数:所有对象共享同一个函数  静态成员函数只能访问静态成员变量。访问方式通过类名/通过对象
	 成员变量和成员函数分开存储的。非静态成员变量属于类的对象上,静态成员变量,不属于类对象上,非静态成员函数,不属于类对象上,静态成员函数,也不属于类对象上
	 空对象内存占1个字节
	 this指针指向被调用的成员函数所属的对象上
	 1.解决名称冲突
	 2.返回对象本身用*this
	 const修饰成员函数
	 常函数:void per() const {},常函数内不可以修改成员属性,成员属性声明时加关键字mutable,在常函数中依然可以修改
	 常对象:const per p;常对象只能调用常函数
	 */
	 person p(10, 2, 3);
	 p.printp();
	system("pause");
	return 0;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值