你的位置:首页 > 软件开发 > 操作系统 > 一个C++bug引入的许多知识

一个C++bug引入的许多知识

发布时间:2016-05-18 18:00:07
一、前言 假设我们有一个Car类,用了表示一个车,它有id,名字,牌照等许多东西,还有一个表示车的部件CarPart。 但出于某方面的考虑,我们不打算在产生car这个对象的时候,就生产出这个车,你可以认为这个时候,只有一个纸糊的车摆在你的面前,它有id ...

一个C++bug引入的许多知识

 

 

一、前言

    假设我们有一个Car类,用了表示一个车,它有id,名字,牌照等许多东西,还有一个表示车的部件CarPart。

    但出于某方面的考虑,我们不打算在产生car这个对象的时候,就生产出这个车,你可以认为这个时候,只有一个纸糊的车摆在你的面前,它有id,有名字,有牌照,但是它不能动,只有我们打算启动这个车的时候,才去给这个车配置发动机,轮胎等各个部件。

 

二、错误代码1

//CarPart类  用了标识车内的各个部件

  一个C++bug引入的许多知识

//Car类 用了标识车 

一个C++bug引入的许多知识

 

我们定义了一个car类,它里面有一个_id标识这个car,也有一个_car来标识这个车的各个部件,在最开始的时候,_car指针是null,当我们调用getCar的时候,我们判断这个车是否创建好了部件,有的话就返回部件,没有的话,为这个车创建部件,至于具体的创建步骤,也许是在工厂制造,也许是从其他地方抢来的也有可能,然后返回车的部件

 

main函数

一个C++bug引入的许多知识

我们在一个循环里来创建car对象,创建这个车的部件,并把这个对象放进一个vector里,在这个循环里,我们只会循环一次,至于原因你在下面会看到

然后我们运行程序,刚开始看起来很正常,但是糟糕…程序出现了问题

g++   -g  main.cpp -o main.out  //(使用-g选项来生成调试文件)

 

 ./main.out  

 

Start

原标题:一个C++bug引入的许多知识

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录