摘要: void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( void ) { char *str = NULL; GetMemory( str ); strcpy( str, "hello world" ); printf( “%s”,str );}这个一个考验对指针理解的题目,上面程序在运行之后:1,调用GetMemory( str )后, str并未产生变化,依然是NULL.只是改变的str的一个拷贝的内存的变化2,strcpy( str, "hello world" );程序运 阅读全文
posted @ 2013-06-28 14:39 奥卡姆剃刀 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始) 简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异而采用不同的策略。下面来看一段简单的代码class A{ public: void print(){ coutprint(); p2->print(); } 运行一下看看结果,哟呵,蓦然回首,结果却是两个This is A。问题来了,p2明明指向的是class B的对象但却是调用的... 阅读全文
posted @ 2013-06-28 14:32 奥卡姆剃刀 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 本篇是我根据网上的一些陈述经过整理和总结而得。其中详细的内容我会标注出处。看不懂的可以查看原文.一、什么事防御性编程详细请见:http://www.uml.org.cn/codeNorms/201007165.asp 防御性编程是一种细致、谨慎的编程方法。为了开发可靠的软件,我们要设计系统中的每个组件,以使其尽可能地“保护”自己。我们通过明确地在代码中对设想进行检查,击碎了未记录下来的设想。这是一种努力,防止(或至少是观察)我们的代码以将会展现错误行为的方式被调用。 防御性编程是一种编程习惯,是指预见在什么地方可能会出现问题,然后创建一个环境来测试错误,当预见的问题出现的时候通知你,并执... 阅读全文
posted @ 2013-06-28 13:50 奥卡姆剃刀 阅读(436) 评论(0) 推荐(0) 编辑
摘要: #include using namespace std; void theFun(char a[]) { cout<< "2: " <<sizeof(a) <<endl; } int main() { char a[100]=" "; cout<< "1: "<<sizeof(a) <<endl; theFun(a); cout<< "3: "<<sizeof(a[100]) <<endl; return 阅读全文
posted @ 2013-06-28 11:29 奥卡姆剃刀 阅读(1374) 评论(0) 推荐(0) 编辑