第11章 GUI Page462~476 步骤二十三 步骤二十四 Undo/Redo ①为Undo/Redo做准备工作,弹出日志窗口

发布时间:2024年01月06日

step23和step24合起来学习

工程一

1.主窗口类中添加新的私有成员数据:

2 主窗口构造函数中,最后一行加入,用于调试的Log功能

3 鼠标弹起函数,添加Undo动作

4 编译之后报错:ActionLink不是一个类型

5? 新增一个头文件? action_link.hpp

编译之后,报错

error: 'struct ActionLink' has no member named 'AddAction'? 没有成员函数
error: expected type-specifier before 'AddAction' 没有类型标识符

6 增加一个成员函数AddAction()

编译报错:

expected type-specifier before 'AddAction',没有类型标识符

7? 增加一个类AddAction

编译报错

error: no matching function for call to 'AddAction::AddAction(std::__cxx11::list<IItem*>&)没有合适的构造函数

8? 增加合适的构造函数

编译报错

?error: no matching function for call to 'ActionLink::AddAction(AddAction*)'
? ? ? ? ?_actionLink.AddAction(new AddAction(_items));?

AddAction()函数形式不对

9 修改AddAction函数的形式,void AddAction(EditAction* newAction)

然后编译报错:error: 'EditAction' has not been declared

10 增加类? EditAction

编译后报错:

error: no matching function for call to 'ActionLink::AddAction(AddAction*)',参数不是AddAction

·

11 让AddAction继承EditAction

编译后报错:wxMyPainterMain.cpp:328: undefined reference to `AddAction::AddAction(std::__cxx11::list<IItem*, std::allocator<IItem*> >&)'? ?没有构造函数

12? AddAction增加两个私有属性,实现AddAction的构造函数

编译后报错:action_link.cpp:5: undefined reference to `vtable for AddAction',找不到虚函数表

13? 实现? AddAction的析构函数,因为析构函数的声明是虚函数

编译后不再报错,运行效果:

可以正常运行了,日志窗也弹出了,但记录日志功能还不能用

文章来源:https://blog.csdn.net/yanzhenxi/article/details/135415168
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。