一、学习的知识点
链表
//结点类
class Node
{
public:
Node(){
this->pdata=NULL;
this->pnext=NULL;
}
void *pdata;
Node *pnext;
};
#endif
//链表类
class Clist
{
public:
Clist(){
this->head=new Node;
this->head->pnext=NULL;
this->count=0;
}
void addNode(void *data){ //添加结点
Node *newnode=new Node;
Node *ptemp=this->head;
while(ptemp->pnext != NULL)//遍历找尾巴
{
ptemp=ptemp->pnext;
}
//给新结点赋值,连接新结点
newnode->pdata=data;
ptemp->pnext=newnode;
this->count++;
}
int removeNode(int pos){ //删除
int i=0;
Node *pre=head;
Node *ptemp=head->pnext;
while(ptemp != NULL)
{
i++;
if(i == pos)
{
pre->pnext=ptemp->pnext;
//delete ptemp->pdata; **pdata指针不是new开辟的,不能用delete**
delete ptemp;
count--;
return 0;
}
pre=pre->pnext;
ptemp=ptemp->pnext;
}
return -1;
}
private:
//链表头
Node *head;
//结点数
int count;
};
继承
实体间的关系有:
- 复合:班级和学校 :班级是学校的一部分
- 继承:中学和学校:中学是学校。c++中,继承全部,并允许有属于自己的特征;被继承的类叫 基类(父类),继承的叫 派生类(子类)。
- 可以派生类可以有一个基类或者多个基类(多继承)
- 派生类创建类对象:会走构造,先走基类,再走自己的构造;回收的时候:会走析构,先走派生类析构,再走基类析构
- 如果基类中继承下来的成员函数满足不了派生类功能的时候,派生类需要重写这个函数:重写的函数格式要和基类一模一样:返回值类型 函数名 参数列表,内容不同
- 继承的格式:
class 派生类名:继承方式 基类名{}; 一个基类
class 派生类名:继承方式 基类名,继承方式 基类名{}; 多个基类
.h
//控件基类
class CtrBase
{
public:
CtrBase();
CtrBase(int x,int y,int w,int h,int typ,char *cont);
void show();
protected: //受保护的派生类可以访问
int startX;
int startY;
int width;
int height;
int type;//1 标签 2 编辑框 3 按钮
char content[20];
}
.h
#include"CtrBase"
//派生类声明
class Cedit:public CtrBase //继承格式 公有继承
{};
.c
#include"CtrBase"
CtrBase::
- 继承方式:3种,public(基类是什么派生类就是什么) private(派生类都是私有) protected(都是受保护的)
- 继承的时候,构造和析构不会继承,他们是特殊的成员函数
二、上课没有听懂或者没有理解的地方
无
三、当天学习的收获
学习了C++的继承特性,学会使用基类和继承类,减少函数的重复
四、作业的思路、不会的地方
回忆上课的思路
五、其他需要反馈的问题
无
六、心得体会
学习了新内容,多加复习巩固
这篇博客详细记录了C++中链表和继承的知识点,包括复合与继承的概念,派生类与基类的关系,多继承的实现,以及构造和析构函数的特殊性。博主分享了学习收获,表示通过理解和实践加深了对C++继承特性的掌握。
3432

被折叠的 条评论
为什么被折叠?



