关闭

浅出C++对象模型——理解构造函数、析构函数执行顺序

本文主要说明对象创建时构造函数的执行顺序,对象成员的初始化顺序;对象销毁时析构函数的执行顺序,对象成员的销毁顺序。        “对象的构造从类层次的最根处开始,在每一层中,首先调用基类的构造函数,然后调用成员对象的构造函数。析构则严格按照与构造相反的次序执行,该次序是唯一的,否则编译器将无法自动执行析构过程。       一个有趣的现象是,成员对象初始化的次序完全不受它们在初始...
阅读(7812) 评论(0)

迭代器失效(2)—一个例子

前几天刚写了一篇关于STL迭代器失效的博文(迭代器失效(1)-小心使用STL容器的erase() ),今天又犯了错误,原因是代码结构的复杂性掩盖了迭代器失效的事实。                  现把代码层层简化,如下: #include std::vector myVector; void do_something(); void handleElement(int val);...
阅读(1496) 评论(4)

迭代器失效(1)-小心使用STL容器的erase()

对于以下代码:       my_container.erase(iter);                 其中my_container是STL的某种容器,iter是指向这个容器中某个元素的迭代器。如果不是在for,while循环中,         这种方式删除元素没有问题,如果是在for,while中对m_container迭代,删除其中符合条件的所有元素,就可能出现问题。...
阅读(13400) 评论(5)

以实践的方式学习C++ &(引用)

1.第一个例子: 假设: int var1 = 224; //存放var1的值224的内存地址是0x12ABCDEF则以下Code: int var2 = var1; // 将var1的值复制给var2. int& var2 = var1;//var2 是var1 的别名(var2是var1的引用),var1= var2 = 224,var1的值未发生复制,它们的值的地址都是0x12...
阅读(936) 评论(0)
    个人资料
    • 访问:193933次
    • 积分:2508
    • 等级:
    • 排名:第15180名
    • 原创:45篇
    • 转载:3篇
    • 译文:5篇
    • 评论:67条