scarsty / kys-cpp

《金庸群侠传》c++复刻版,已完工
BSD 3-Clause "New" or "Revised" License
2.58k stars 372 forks source link

代码C++现代化 #9

Closed fyt000 closed 6 years ago

fyt000 commented 6 years ago

主要就是移除new和delete,能用栈就不用堆

fyt000 commented 6 years ago

如果PR看的过去请求merge的时候squash

scarsty commented 6 years ago

统一使用指针是防止其他人使用的时候无法理清子节点和主干节点。squash是什么意思?

fyt000 commented 6 years ago

squash就是merge的时候可以选的一个选项,选了后整个Pull request(多个commit)会被squash成一个commit,看起来舒服。除去Element先不讨论,可以看看其他修改如何

fyt000 commented 6 years ago

请求再顺便讲解一下,最近有个commit做了element删除的parent检测,什么情况一个子element会被addChild到不同父element多次吗?我觉得这很危险,悬垂指针什么的(考虑用shared_ptr?)

scarsty commented 6 years ago

只有天气节点被同时添加到三个地图。 这个设计确实存在删除顺序的问题,待我再想想。 这个框架设计时就避免使用一些复杂结构,因为主要是面向初学者的。

fyt000 commented 6 years ago

我怎么记得好像在哪里非常骄傲的写出了c++11,手动斜眼。我们可以先关闭这个pull request,但是a star那里应该是有内存泄漏

scarsty commented 6 years ago

并没有什么地方非常骄傲地写出了用c++11,仅在论坛写过用c++11的语法简化代码。 A* new的位置写错了,改成对象应该会好一点。