随笔分类 -  C++

摘要:今天一同事闲时看了一些C++代码,于是问我 new 一个类型时后面加括号和不加括号有什么区别?如下:A* test1 = new AA* test2 = new A( ) 我竟一时答不上来。 后来查阅了一些资料,整理出一些结论,正确与否,还需认证。对于自定义的类型,两种写法是一致的。而对于内建类型,区别在于调用的构造函数不一样,例如:int* a = new int ; // a 的值不确定 int* b = new int(); // b的值被初始化为0 对于此种情况,后者比前者多了一个 memset 。 在CSDN的论坛上,也有关于这个问题的争议,不够貌似还没有最后的结论。本文转自http 阅读全文
posted @ 2013-07-18 22:57 迷路君的博客 阅读(119) 评论(0) 推荐(0)
摘要:今天在csdn看到有人出了一道考数组长度的问题,感觉挺不错的,稍稍归纳一下,记录在案。chartest[]={0x01,0x02,0x03}; int a =strlen(test);intb=sizeof(test); 则 a值为不确定值,因为 strlen 判断字符串结束的标志是指针走到值为 '\000' 的地址处,'\000' 在十六进制里的表示就是 0x00。 b 值为 3,sizeof是返回变量所占内存数。 若chartest[]={0x01,0x00,0x03}; 则 a = 1 因为 0x00 为字符串结束符。b依然为3。 若chartest[20 阅读全文
posted @ 2013-07-18 22:53 迷路君的博客 阅读(224) 评论(0) 推荐(0)
摘要:#include<iostream>template < class T > T larger(T a,T b); // 不能放在main函数里面main(){ using std::cout; int a = 1; int b = 100; cout << larger( a ,b );}template < class T > T larger(T a,T b){ return a > b ? a : b;} 阅读全文
posted @ 2013-04-05 14:00 迷路君的博客 阅读(189) 评论(0) 推荐(0)
摘要:原本对于二维数组a[3][4]中的a[0]究竟指什么不确定,用了一段代码检验下#include<iostream>main(){ using std::cout; using std::endl; int a[3][4]; cout <<endl << "sizeof a == "<<sizeof a <<endl <<"i == "<<sizeof a/sizeof a[0]<<endl <<"sizeof a[0] == " 阅读全文
posted @ 2013-04-05 13:54 迷路君的博客 阅读(727) 评论(0) 推荐(0)