一个隐蔽的错误

使用C++时出现的一个很隐蔽的Bug

话说,有一段代码如下

01 #include <string.h>
02 #include <string>
03 using namespace std;
04
05 typedef struct Test
06 {
07     string name;
08     int    a;
09 }Test;
10
11 int main()
12 {
13     Test tTest;
14     memset(&tTest, 0, sizeof(Test));
15
16     return 0;
17 }

 

当然如果有兴趣的同志们复制去了会发现,编译执行都是没有问题的。但实际上这段代码有一个很严重的错误。

至于错误是什么,下回分解

面向对象浅谈

好好温习一下面向对象。使用的教材是微软的设计模式的一个视频教程。设计模式做为一个经验的理论,是能够给我们的软件设计带来一些新的思路的。

但设计模式往往是与面向对象联系到一起。首先需要先理解好面向对象,这样才不会误用设计模式。

每提到面向对象,总会提到这三个概念“封装、继承、多态”

  • 封装:封闭内部代码,只提供接口
  • 继承:类的复用
  • 多态:使用虚函数等实现

继续阅读“面向对象浅谈”