![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 73
resist_o
这个作者很懒,什么都没留下…
展开
-
RTTI 运行阶段类型识别
//RTTI只适合于包含虚函数的类,原因在于只有对于这种类层次的结构,才应该将派生类对象的地址赋给基类指针/*RTTI的三种策略: 1. dynamic_cast : 如果用于检测指针: Type *pm = dynamic_cast(pt) 用法:pt的类型是否可以被安全转化为Type * ?如果可以,则返原创 2016-01-18 19:11:51 · 438 阅读 · 0 评论 -
[转] Visual Assist 使用小结
来源:http://blog.chinaunix.net/uid-22145625-id-3230590.html来源:http://blog.csdn.net/yann2/article/details/5929501来源:http://blog.csdn.net/a597926661/article/details/7845825来源:http://blog.csdn.net/fr...转载 2019-01-08 20:34:58 · 662 阅读 · 0 评论 -
void (*signal (int signo, void (*func)(int))) (int);
返回函数指针的函数指针类型void (*signal (int signo, void (*func)(int))) (int); void (*signal (int signo, void (*func)(int))) (int);乍一看,还以为定义了一个函数指针signal,但如果真是这样,signal后的参数列表又怎么解释?先来看看一些基础知识:1,定义函数指针:转载 2017-07-22 22:28:42 · 560 阅读 · 1 评论 -
C++中的动态绑定 对虚表的一些测试
转自:http://blog.csdn.net/fastsort/article/details/8757533C++中的动态绑定 动态绑定(dynamic binding):动态绑定是指在执行期间(非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。 C++中,通过基类的引用或指针调用虚函数时,发生动态绑定转载 2017-07-22 16:29:31 · 312 阅读 · 0 评论 -
C++中的explicit关键字
转自:http://blog.csdn.net/chollima/article/details/3486230#comments在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很转载 2017-07-21 11:37:09 · 192 阅读 · 0 评论 -
C++虚函数-同名访问 以及两道例题
首先来看一下派生类和基类成员同名事的处理规则:派生类内定义了一个与基类同名的成员,该现象称为同名覆盖,此时,无论派生类内部成员函数还是派生类的对象访问同名成员,如果未加任何特殊标识,则访问派生类中重新定义的同名成员。如果派生类内部成员或派生类的对象需要访问基类继承来的同名函数,则必须在同名函数前加上"基类名::"进行类名限定。如果基类内部成员函数或基类对象访问同名成员,访问的一定是基类的同转载 2016-09-06 00:09:03 · 1018 阅读 · 0 评论 -
C++中四种进程或线程同步互斥的控制方法
现在流行的进程线程同步互斥的控制机制,其实是由最原始最基本的4种方法实现的。由这4种方法组合优化就有了.Net和Java下灵活多变的,编程简便的线程进程控制手段。 这4种方法具体定义如下 在《操作系统教程》ISBN 7-5053-6193-7 一书中能够找到更加周详的解释 1临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。转载 2016-08-21 23:30:39 · 3375 阅读 · 0 评论 -
STL的逆向迭代器
本文转自:http://zhouruijun163.blog.163.com/blog/static/10771562008111103635444/ 在学习STL中关于迭代器reverse_iterator转换,发现个有趣的问题,如下例子。#include iostream>#include algorithm>#include vector>usin转载 2016-03-21 19:26:20 · 332 阅读 · 0 评论 -
C++11 右值引用
转自:http://www.cnblogs.com/hujian/archive/2012/02/13/2348621.htmlC++ 11中引入的一个非常重要的概念就是右值引用。理解右值引用是学习“移动语义”(move semantics)的基础。而要理解右值引用,就必须先区分左值与右值。对左值和右值的一个最常见的误解是:等号左边的就是左值,等号右边的就是右值。左值和右值都是针对转载 2016-02-24 20:00:07 · 291 阅读 · 0 评论 -
Effective C++读书笔记 条款03:尽可能使用const
条款03:尽可能使用const这个条款的内容叙述了很多,不便全部列出。但主要还是围绕在对const的优点的阐述上,和如何正确与合理使用const。 const的一件奇妙的事情是,它允许你指定一个语义约束,而编译器会强制实施这项约束。它允许你告诉编译器和其他程序员某个数值应该保持不变。只要这(某值保持不变)是事实,你就确实该说出来,因为说出来可以获得编译器的相助,确保这条约束不被违反。原创 2016-03-03 11:50:23 · 401 阅读 · 0 评论 -
C++11中initializer_list的用法
/* initializer_list 是C++11新增的,可以使用它来初始化STL: 例如:std::vector payments {45.9,39.3,19.59,89.1}; 上述声明与下述代码等价(这里显式的将列表指定为构造函数参数): std::vector payments ({45.9,39.3,19.59,89.1}); 在C++原创 2016-02-01 19:14:21 · 8636 阅读 · 0 评论 -
Effective C++ 读书笔记 条款1~2
条款01:视C++为一个语言联邦 为了更好的理解C++,我们将C++分解为四个主要次语言:· C。说到底C++仍是以C为基础。区块,语句,预处理器,内置数据类型,数组,指针统统来自C。· Object-Oreinted C++。这一部分是面向对象设计之古典守则在C++上的最直接实施。类,封装,继承,多态,virtual函数等等...· Template C++。这是C++泛型原创 2016-03-01 19:23:12 · 334 阅读 · 0 评论 -
关联容器 set
//set的键与值的类型相同,且不能出现重复值。#include#include#include#include#includevoid output(const std::string &s){ std::cout<<s<<" ";} int main(void){ using namespace std; const int N=6; string s1[N]={"bu原创 2016-01-24 22:47:05 · 301 阅读 · 0 评论 -
关联容器 multimap
//multimap会自动按照键值为所有元素排序,将键值相同的元素放在一起//能够对元素进行快速访问,因为它是树形结构。 #include#include#include#includevoid output( std::pair &s){ std::cout<<" "<<s.first<<" "<<s.second<<std::endl;}typedef int原创 2016-01-24 22:43:58 · 310 阅读 · 0 评论 -
函数适配器
/* 什么是函数适配器? 例如: template bool tooBig(const T& val,T & lim){ return val > lim;} 这是比较大小的模板函数,但是一次必须得接受两个参数,但通常在 函数中,迭代器只有一个,需要一种能将 多参数函数 转换为 “接收一个参数的函数对象” 的机制,这就叫做“函数原创 2016-01-24 22:42:18 · 387 阅读 · 0 评论 -
C++之智能指针(二)
探讨 unique_ptr 为何优于 auto_ptr(已被C++11摒弃) /* 共同点:二者都建立了所有权概念(ownership) ownership:对于特定的对象,只有一个智能指针可以拥有它,所以只有拥有对象的 智能指针的析构函数会删除该对象。 *//* auto_ptr :(已经被C+原创 2016-01-19 20:15:38 · 311 阅读 · 0 评论 -
C++之智能指针 (一 )
//智能指针是一种类派生出的对象,能够在离开代码块的时候,自动delete掉new出的空间,以防止内存泄露 /* auto_ptr :(已经被C++11摒弃)建立所有权概念(ownership) ownership:对于特定的对象,只有一个智能指针可以拥有它,所以只有拥有对象的智能指针的 析构函数会删除该对象。 赋值操作可原创 2016-01-19 20:11:15 · 276 阅读 · 0 评论 -
C++构造函数和析构函数中抛出异常的注意事项
从语法上来说,构造函数和析构函数都可以抛出异常。但从逻辑上和风险控制上,构造函数和析构函数中尽量不要抛出异常,万不得已,一定要注意防止资源泄露。在析构函数中抛出异常还要注意栈展开带来的程序崩溃。1.构造函数中抛出异常在C++构造函数中,既需要分配内存,又需要抛出异常时要特别注意防止内存泄露的情况发生。因为在构造函数中抛出异常,在概念上将被视为该对象没有被成功构造,因此当前对象的析构函...转载 2019-03-14 22:19:54 · 175 阅读 · 0 评论