个人意见:
在删除通讯录的功能中,我们需要提示用户输入需要删除的person的名字(要用户说出号码比较不友好吧),这样在寻找过程中比对两个person相等就会出错(因为电话号码未知),导致找不到这个person。这是因为在Person.cpp中重载的==运算符对比了号码和名字,为了简便操作应该把对比号码的步骤删掉吧(当然不考虑通讯录里同名的情况,谁的通讯录里会有重名的呢?!)。
在删除通讯录的功能中,我们需要提示用户输入需要删除的person的名字(要用户说出号码比较不友好吧),这样在寻找过程中比对两个person相等就会出错(因为电话号码未知),导致找不到这个person。这是因为在Person.cpp中重载的==运算符对比了号码和名字,为了简便操作应该把对比号码的步骤删掉吧(当然不考虑通讯录里同名的情况,谁的通讯录里会有重名的呢?!)。
2017-03-22
老师用 if 判断语句的目的是为了让大家养成处理异常的习惯吧,但这样处理是不对的:
(1)如果new成功,那么newNode == 0 永不成立,自然不会return false
(2)如果new失败,那么直接抛出异常,new语句下的其他语句就不会再执行了。
应该这么写:Node* newNode = new (std::nothrow)Node(),这样设置就不会抛出异常了
(1)如果new成功,那么newNode == 0 永不成立,自然不会return false
(2)如果new失败,那么直接抛出异常,new语句下的其他语句就不会再执行了。
应该这么写:Node* newNode = new (std::nothrow)Node(),这样设置就不会抛出异常了
2017-03-20
在写ListDelete这个函数的时候将currentNodeBefore->next=currentNode->next;写成currentNodeBefore->next=currentNode;然后运行程序的时候老出现访问地址什么冲突的错误,经过查找原来链表都没连接起来了。还要细心呀,不然浪费很多时间,都不知道问题出在哪
2017-03-15