创建Screen和MyRectangle类时遇到的问题总结

最近在看 C++程序设计入门(上)  崔毅东 这门课,今天做了第4单元作业【1】-在线编程 这个作业,遇到了很多之前都没有预料到的问题,现在对这些问题做一个总结。

1. Redefinition of Class Error

      这个错误是由于我在MyRectangle.cpp中包含了"Screen.h"头文件,然后又在main.cpp中包了"Screen.h",包含了两次头文件,也就意味着重新定义了一次。当我把main.cpp中的头文件去掉之后错误消失。

2.program received signal sigsegv

这个错误是由于我在使用myRectangles[1]

MyRectangle* myRectangles = new MyRectangle[2];

对MyRectangles[1]中的Screen* 对象进行赋值时使用了screen_->setWidth(),而此时的screen_是一个空指针,这样调用会出现导致空指针异常产生。

3.passing 'const Screen' as 'this' argument of 'int Screen::getHeight()' disca

非常量版本的函数对于常量对象是不可用的,所以我们只能在一个常量对象上调用const成员函数。

void MyRectangle::setScreen(const Screen& screen)我在这个函数中调用了screen->getHeight()成员函数,而getHeight()并非是const版本,所以产生了上面的错误。

4.当程序莫名奇妙的停止时,如果程序里面有指针,一定第一时间要查看是否对空对象指针的的成员进行了访问,这个空指针异常发生的频率还是蛮高的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值