C++易混淆知识点
阳光的颜色
我喜欢程序员,他们单纯固执,容易体会到成就感。面对压力,能够挑灯夜战不眠不休。面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧开创属于自己的事业。我想说的是,其实我是一个程序员
展开
-
C++中可以访问private的情况
1、类体的成员函数2、类体的成员函数中的形参中的该类的对象、对象引用或者对象指针,以及函数体中定义的局部对象、对象引用或者对象指针。3、类的友元函数中的形参中的该类的对象、对象引用或者对象指针,以及函数体中定义的局部对象、对象引用或者对象指针。4、类的友元类的成员函数中形参中的该类的对象、对象引用或者对象指针,以及函数体中定义的局部对象、对象引用或者对象指针。原创 2014-03-18 21:41:10 · 2313 阅读 · 0 评论 -
中文在C/C++中的处理和汉字乱码问题(wchar_t)
中文在C/C++中的处理和汉字乱码问题(wchar_t)如今编程的语言和编程环境随着中国的发展开始对中文有进一步的支持,但是对中文的支持总体来说是有缺陷的,而且有与编译环境的不同导致中文在当前的C/C++中有很多问题,而且很多版本对中文的支持是不完全的,就拿DEV-C++和VS2005为例,对与MSDN的帮助和网上的讲述两者在那些代码的支持有很多不同的地方。而我要讨论的就是对于中文在C/C++的应用方法。原创 2014-11-08 11:50:43 · 15004 阅读 · 6 评论 -
c++ setlocale函数的应用
setlocale配置地域化信息。语法: char * setlocale ( int category, const char * locale );返回值: 字符串函数种类: 操作系统与环境内容说明本函数用来配置地域的信息,设置当前程序使用的本地化信息。原创 2014-11-08 11:56:34 · 3803 阅读 · 0 评论 -
iterator与const_iterator区别
所有的标准库容器都定义了相应的迭代器类型。迭代器对所有的容器都适用,现代 C++ 程序更倾向于使用迭代器而不是下标操作访问容器元素。原创 2013-09-27 20:30:53 · 1908 阅读 · 0 评论 -
如何使用宏求结构体的内存偏移地址
在C语言中,ANSI C标准允许值为0的常量被强制转换成任何一种类型的指针,而且转换结果是一个空指针,即NULL指针,因此对0取指针的操作((type*)0)的结果就是一个类型为type*的NULL指针。 但是如果利用这个NULL指针来访问type类型的成员当然是非法的。 因为&(((type*)0)->field)的意图只不过是计算field字段的地址,C语言编译器根本不生成访问type成员的代码,而仅仅是根据type的内容布局和结构体实例地址在编译期计算这个常量地址,这样就完全避免了通过NULL指针访原创 2015-06-16 15:54:17 · 2472 阅读 · 0 评论 -
c++ 输出虚函数表内容
class Base{ public: virtual void f(){cout<<"Base::f"<<endl;} virtual void g(){cout<<"Base::g"<<endl;} virtual void h(){cout<<"Base::h"<<endl;}};typedef void (*Fun)(void);int main(){ Base b原创 2015-06-25 22:15:44 · 1590 阅读 · 0 评论 -
delete与delete [] 真正区别
对于像int/char/long/int*/struct等等简单数据类型,由于对象没有destructor,所以用delete 和delete [] 是一样的!但是如果是C++对象数组就不同了!原创 2015-06-25 21:28:39 · 1474 阅读 · 0 评论 -
对容器元素重新排序的算法
假设我们要分析一组儿童故事中使用的单词,例如想知道他们使用了多少个6个或者以上字母组成的单词。每个单词只统计一次,不考虑它出现的次数。程序代码如下:#include #include #include #include using namespace std;//comparison function to be userd to sort by word lengthbool原创 2015-07-04 19:40:43 · 1178 阅读 · 0 评论