2021-07-11

本文探讨了C++中的内存管理运算符new与自定义内存分配函数molloc的区别,同时讲解了缺省拷贝构造函数、析构函数和浅拷贝/深拷贝的概念。通过实例展示了如何在Student类中实现浅拷贝和深拷贝,以及全局函数的const属性问题。
摘要由CSDN通过智能技术生成

7.9所学知识:
1.new和molloc:
New:是一种运算符,自动计算,返回类型不进行强调,内存不足,抛出一场申请空间(调动构造函数)
Molloc:是函数调用,自己计算,返回类型进行强调。
2. 缺省拷贝函数
#include<stdio.h>
using namespace std;
class Int()
{
public:
Int(int x=0):value(x)
{
cunt<<“Create Int:”<<this<<endl;
}
Int(const Int&it):value(it.value)
{
cout<<“Copy Create Int:”<<this<<endl;
}
~Int()
{
cout<<“Destroy Int:”<<this<<endl;
}
};
int main()
{
Int a(10);
Int b(a);
}
3.类里面的缺省函数:
拷贝构造函数;析构函数;构造函数;赋值语句;取地址运算符的重载;移动构造;移动组织。
4.深拷贝浅拷贝:
#include
#include<stdio.h>
using namespace std;
class Student {
private:
int num;
char* name;
public:
Student() {
name = new char[20];
cout << “Student” << endl;
}
~Student() {
cout << “~Student” << (int)name << endl;
delete name;
name = NULL;
}
Student(const Student& s) {
name = new char[20];
memcpy(name, s.name, strlen(s.name));
cout << “copy Student” << endl;
}
};

int main()
{
{
Student s1;
Student s2=s1;
}
return 0;
}
5.全局函数不具有const属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值