随笔分类 -  C++

摘要:class Concrete{public: int a; void Print() { printf("******** Hello World***************\n"); } void PrintError() { val = 10; }private: int val;};void main(){int i =100; Concrete* pC = (Concrete*)i; //理论上这种强制转换 是 不合理的。 pC->Print(); //可是调用这个,却没问题 pC->PrintError()// 会出错}为什么会出现这种情况呢??原来 阅读全文
posted @ 2013-01-25 22:54 sinian 阅读(258) 评论(0) 推荐(0)
摘要:今天看了一篇模块, 里面讲到了引用和指针。http://blog.csdn.net/wangqiulin123456/article/details/8464418这里我谈下自己的感受吧。.引用与指针有什么区别?1)引用必须初始化,指针不必。2)引用初始化之后,就不能改变了。 指针可以改变所指的对象。3)不存在指向空值的引用,但是存在指向空值的指针。指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。引用使用时无需解引用(*),指针需要解引用;int _tmain(int argc, _TCHAR* argv[]) { int m = 100; int &n = m; m 阅读全文
posted @ 2013-01-25 22:39 sinian 阅读(160) 评论(0) 推荐(0)
摘要:最近在学习 windows api 编程, 在学习过程中用到了很多 HWND ,HANDLE 等。查看了定义才发现其实就是 void*在头文件中 有一个宏#define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name这个到底是什么意思呢?其实可以把 ## 看成是 黏贴 连接符, 把上面翻译出来就是:比如外部调用了 DECLARE_HANDLE(HMYHANDLE);struct HMYHANDLE_{ int unused;};typedef struct HMYHANDLE_*H 阅读全文
posted @ 2013-01-22 17:27 sinian 阅读(502) 评论(0) 推荐(0)