随笔分类 - C++
摘要:总结:虚函数表是针对类的,一个类的所有对象的虚函数表都一样。 虚指针(vptr):每个含有虚方法(虚函数)对象里有虚表指针,指向虚表。 虚函数表:虚函数表是顺序存放虚函数地址的,虚表是顺序表,表里存放了虚函数的地址。 C++的编译器应该是保证虚函数表的指针存在于对象实例中最前面的位置(这是为了保证取
阅读全文
摘要:primitives(基本工具) 对比 malloc,free 不可重载 c函数 new,delete 不可重载 C++表达式 ::operator new(),::operator delete() 可重载 C++函数 allocator<T>::allocate(),allocator<T>::
阅读全文
摘要:qtWidget(空窗口) QT简介 跨平台,接口简单,一定程度简化了内存回收 版本:商业版,开源版 案例 Linux桌面KDE 谷歌地图 VLC多媒体播放器 基类关系 程序介绍 main文件 QApplication a;//应用程序对象,只有一个 myWidget w;//窗口对象,默认不会显示
阅读全文
摘要:对比来看; 作用域限定符: 类名加作用域限定符可以用来在其他函数或类内访问静态成员,但是!!不能直接访问非静态成员,如果需要访问非静态成员,使用对象加点加非静态成员的方式。 可以用来在类外对类内的静态数据成员初始化或者对类内的函数进行定义。但是!!!:(1)不能在类外对非静态数据成员进行初始化但可以
阅读全文
摘要:局部静态变量的特点: 全局数据区 执行到函数内对象声明处首次初始化,若没有显示初始化,自动初始化为0,且只初始化一次 始终驻留在全局区,直到程序结束,作用域为局部作用域,在函数或语句块内,生命周期到程序结束 全局静态变量的特点: 全局区 在main函数执行前分配内存并初始化 注意:全局变量、文件域的
阅读全文
摘要:如果大家细心的话应该知道c/c++语言函数参数入栈顺序为从右至左,那么为什么这样呢?来看看两个知识点:参数的计算顺序与压栈顺序。 参数入栈顺序 c/c++中规定了函数参数的压栈顺序是从右至左,函数调用协议会影响函数参数的入栈方式、栈内数据的清除方式、编译器函数名的修饰规则等。 参数传递和命名约定 V
阅读全文
摘要:全局作用域中定义的名字(即在所有类,函数及命名空间之外定义的名字)也就是定义在全局命名空间中。
阅读全文
摘要:SSL/TLS四次握手过程 SSL(Secure Socket Layer 安全套接层)是基于 HTTPS 下的一个协议加密层,最初是由网景公司(Netscape)研发,后被 IETF(The Internet Engineering Task Force - 互联网工程任务组)标准化后写入(RFC
阅读全文
摘要:类型萃取表面意思就是在合适的时机帮助我们选择合适的对象。 然而怎么去实现类型萃取,这个其实与模板的联系比较紧密。 给个案例,可以体会一下。 struct FalseType{ bool Get() { return false; }};struct TrueType{ bool Get() { re
阅读全文
摘要:情形如下: class Point{public:Point(int xx, int yy) { x = xx; y = yy; }Point(const Point &p):x(p.x),y(p.y) //这里的复制构造函数对象p竟然能直接访问自己的私有成员?? { }private: int x
阅读全文
摘要:友元的作用:提高程序的运行效率。(原因:减少了类型检查和安全性检查) 网上大多是这种说法,但几乎没有解释为什么是减少了类型检查和安全性检查。博主认为:普通函数在被调用的时候,一般来说有下面几种方式:对象.+数据(或者成员函数),类名::数据(或成员函数),而使用友元时,一个类的友元函数可以直接使用直
阅读全文