C++中类的基础认知

几种权限

//不写的情况下默认为private
private		:允许类内成员访问
protected	:允许类内成员,子类访问
public		:允许类内成员,子类,类外访问

深拷贝和浅拷贝的区别

浅拷贝:简单的值拷贝操作;
问题:堆区的内存重复释放。一般出现在成员变量是指针,有用到new的情况。
例子:

class Person{
	int *m ;
	Person(const Person &p2){
		m = p2.m;	//这里是将指针的地址放给了m,内存是两个类公用
	}		
}

深拷贝:在堆区申请一块内存空间,进行拷贝操作,
例子:

class Person{
	int *m ;
	Person(const Person &p2){
		m = new int(*p2.m);	//在堆区申请一块新的内存,将p2.m指向的数据拷贝进去
	}		
}

类对象作为类成员

例子:

class phone{
	int num;
	phone(int a):num(a){

	}
}
class person{
	phone a;
	//phone a = num;隐式
	person(int num):a(num){

	}
}
void main(){
	person p(10);
}

其他类的对象作为本类的对象的时候,
构造函数,先构造其他类,再构造本类
析构函数,先析构本类,再析构其他类

类的静态成员函数

例子:

class phone{
	static string name;// 
	static string getName(){
		return name;
	}
}

两种访问方式

一、phone::getName();
二、phone p;
	p.getName();

static声明的成员是存在于全局区,即使没有创建实例也存在,整个程序共享这个静态函数
注意:静态成员函数只能访问静态成员变量,静态成员变量不允许访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值