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

来源:互联网 发布:淘宝销量怎么刷上去的 编辑:程序博客网 时间:2024/05/19 16:33

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

0 0