摘要:
今天将继续加强C++模板类的学习,同时为了巩固已经学习过的数据结构中有关优先队列的知识,我将会使用模板类来实现自己的优先队列。在给出具体实现之前,我要先介绍一下什么是优先队列,聊以为复习吧。 在某些情况下,我们会收集一些元素,处理当前元素的最大值,然后再收集更多数据,再处理此时的最大值。这就要求我们 阅读全文
摘要:
今天在我更加深入地学习C++类的重载这一章,特别是读到有关重载自加运算符(++)的时候,我才发现我对C++的自增自减运算的了解并不很全面。以前只是机械的了解到所谓的前自加(++i)就是先加后用,后自加就是先用后加。这样就出现了很多我完全解释不通的地方,如下面的代码: 为什么前自加可以作为左值,而后自 阅读全文
摘要:
重载,通常是对不同数据类型进行相同或相似的操作。如果如果是对不同数据类型进行相同操作,那么使用函数模板将会更加简洁。(注意:重载只是具有相同的函数名字罢了,完全可以在重载的函数中进行完全不同的操作。而重载必须是完全相同的操作)。在编写程序过程中,只需要提供函数模板的定义,编译器会通过模板函数调用过程 阅读全文
摘要:
向下强制类型转换 在C++中,基类(父类)指针可以指向派生类(子类)对象,因为派生类对象也是一个基类对象(但反过来不一样,基类对象不是一个派生类对象)。然而基类指针只能调用基类的成员函数,如果试图使用该指针调用仅在派生类中含有的成员函数(子类特有的,不是继承和重写父类的函数),将会产生编译错误。为了 阅读全文
摘要:
const关键字用于通知编译器,不能修改某个变量的值。该关键字的使用应该以最小特权原则为指导。 定义一般常量:直接在变量类型前或后加上关键字const int main(){ int const a = 10;//定义int常量a=10 const int b = 100; // 定义int常量b= 阅读全文
摘要:
今天重点学习C/C++的默认实参。不多说,下面开始进入正题。 默认实参 引用《C++大学教程》里面的话:默认实参必须是函数形参列表中最靠右边(尾部)的形参。当调用两个或者多个默认实参的函数时,如果省略的实参不是形参列表中最靠右边的,那么在该实参后面的参数全部都该省略。 默认实参定义和使用 非成员函数 阅读全文
摘要:
摘要 最近在使用vs2010编写shellcode的时候,在将编写好的shellcode保存为二进制格式的。那么引出一个问题,我刚开始的时候直接: 取地址符 + 函数名 的方式来获取函数的首地址。当时在使用shellcode的时候,程序一直崩溃,经过分析发现shellcode前面的一些代码并不是我们 阅读全文
摘要:
在vs2010中编写32位程序时,可以直接使用_asm{}来编写内联汇编,而在编写64位时并不支持_asm{}。经过百度,找到一些了解决方法。 阅读全文