4.22学习日记

今天上午背了一个小时单词,本来打算背45个的,只背了30个明天多背15个吧。

中午听了半小时多听力,结果我发现我的听力有了大进步啊,感觉爽,可能跟我经常听英语歌有关系,哈哈

下午主要就自己复现了昨天的代码,还发现有些不足,

第一处,如何释放的newspace

void workermanager::add() { // ...(省略其他代码) // 在这里先释放旧的EmpArray if (this->EmpArray != NULL) { delete[] this->EmpArray; } // 然后将EmpArray指向新分配的内存 this->EmpArray = newspace; this->EmpNum = newnum; // ...(省略其他代码) } // 析构函数中释放当前指向的EmpArray workermanager::~workermanager() { if (this->EmpArray != NULL) { delete[] EmpArray; } }

答案,释放的不是newspace,而是它指向的堆区空间,而newspace和EmpArry指向同一片堆区内存,newspace只存在于add函数作用域,所以用EmpArry释放堆区内存就可以了

第二处

猜猜为什么访问不了里面的函数

#pragma once

#include<iostream>

using namespace std;

class Workermanager {

 

 Workermanager();

 void menu();

 void exit();

 void add();

};

答案,因为没加public,类成员类成员函数会默认是私有的

第三处

函数起名不推荐用关键词,为什么

void Workermanager::exit1(){

 cout << "欢迎下次使用" << endl;

 exit(0);

 system("pause");

 system("cls");

}

答案,因为覆盖掉关键词原来的意思,想再用关键词,编译器不知道你是要调用函数,还是用关键词

第四处

ffef633b3c6340798e0aee30cac9666d.png

 答案,这个是因为本来要写在源文件的实现代码,写在了头文件里,不太好看出来

第五处

67564a98b19c44e5987a20fc69670ff9.png

 答案,这个是Worker是父类不需要源文件,加了不实现就会这样,并且多态父类的纯虚函数不需要实现

第六处

36c9a6435eff4958b7463d7f89a04ce5.png

 答案,这是因为,new动态分配内存右边的格式是new关键词加类型名,不需要变量名,动态分配数组的话,加一个中括号里面填属于成员个数

第七处

39e9aa3546aa4b22943a6d81ffbfcfbe.png

 答案,定义指针后面如果要用的话,要先初始化一下

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值