现在位置: 首页 > 指针
2012-09-10 11:43 工业·编程 ⁄ 共 2619字 暂无评论
一.问题的引出: 容器可以存放对象,可以存放指针,这里要谈的是两者的使用问题。就是什么时候存放对象更好,什么时候存放指针更好? 二.问题的分析过程: 1. 首先说下stl容器的工作方式 对于内建类型(int float char等),容器的工作方式是纯粹的位拷贝,这里没有什么需要多说的。 对于自定义的对象,容器容纳了对象(比如通过insert或push_back等),但容器中存放的对象不是你给它们的那个对象,因为两个对象在内存中的位置...
阅读全文
2012-09-04 11:42 工业·编程 ⁄ 共 2883字 暂无评论
    this指针指向的是当前对象的起始地址,这个大家都知道。this指针变量是编译器所维护的,对于程序员来说属于const,是一个定值。一般对象创建调用构造函数时,通过编译器在构造函数里‘偷偷’安插的代码完成this指针变量的赋值。所以下面的代码输出结果是一致的。 #include <iostream> using namespace std; class Test { public:     Test()     {    &...
阅读全文
2012-09-02 18:39 工业·编程 ⁄ 共 754字 暂无评论
    在 C++中指针和引用的功能很相似,共同点为都可以直接或者是间接地 指代其他的对象 。下面介绍不同点 1:操作符 指针使用“* ”和“ -> ”操作符,引用使用的是“ . ” 2:变量初始化 首先引用不能为空,指针可以为空。 引用必须要指代对象,指针可以在初始化时 string &str; //错误,引用不能为空 string s("qiusuoge"); string &rs=s; //可以 string *ps; //可以,指针没有限制 注意:不要...
阅读全文
2012-09-02 18:32 工业·编程 ⁄ 共 583字 暂无评论
“野指针”定义:所谓的野指针是指向 垃圾 内存的指针,这个内存地址不是NULL 。如果是 NULL 则很容易判断,用 if 语句就可以,垃圾指针用 if 语句不起作用,是很危险的。 野指针的成因: 1: 指针变量没有被初始化。 任何指针在创建时不会自动复制为 NULL,他所指的内存地址是不确定的。所以指针在创建时应该予以赋初值,要么是 NULL 要么是指向一个合法的地址。比如: char *p=NULL; char * str=(char *)malloc(32); 2: 指针 p...
阅读全文
2012-08-28 06:59 工业·编程 ⁄ 共 4940字 暂无评论
    智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增...
阅读全文
HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。   CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。 由HWnd得到CWnd*: CWnd wnd; HWnd hWnd; wnd.Attach(hWnd); 通常一个窗口资源已经和一个CWnd类的对象关联起来的,由于一般来说这个类是自己创建的,所以自然知道怎么得到指...
阅读全文