二手思科路由器密码恢复原理

二手Cisco路由器可以保存几种不同的配置参数 并存放在不同的内存模块中。以二手Cisco 2500系列为例其内存包括ROM.闪存(Flash Memory)、不可变RAM (NVRAM)、RAM和动态内存(DRAM)五种。一般情况下 当路由器启动时 首先运行ROM中的程序进行系统自检及引导然后运行闪存中的IOS 并在NVRAM中寻找路由器配置 并装入DRAM中。 口令恢复的关键在于对配置登记码(Configuration Register...

作者: gzcisco2010 发布时间: 11-22

C++程序习题-运算符重载[4.2]

定义一个复数类Complex,重载运算符“+”, "-",“*”,“/”,使之能用于复数的加,减,乘,除。运算符重载函数作为Complex类的成员函数。编写程序,分别求两个复数之和,差,积和商。 #include <iostream> using namespace std; //复数类 class Complex { public: Complex(){real = 0;imag = 0;} Complex(double r,double i){real = r;imag = i;} void display(); Complex operat...

作者: chengxiaopeng 发布时间: 11-22

C++程序习题-运算符重载[4.1]

定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员,非友元的普通函数。编写程序,求两个复数的之和。 #include <iostream> using namespace std; //复数类 class Complex { public: Complex(){real = 0;imag = 0;} Complex(double r,double i){real = r;imag = i;} void display(); Complex operator +(Complex &c2); private: do...

作者: chengxiaopeng 发布时间: 11-22

函数声明、函数原型、函数定义

对函数的“定义”和“声明”不是一回事。“定义”是指对函数功能的确立,包括指定函数名,函数值类型、形参类型、函数体等,它是一个完整的、独立的函数单位。而“声明” 的作用则是把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查(例如函数名是否正确,实参与形参的类 型和个数是否一致)。从程序中可以看到对函数的声明与...

作者: fly521520sky 发布时间: 11-21

内联函数

(1)什么是内联函数? 内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。 (2)为什么要引入内联函数? 当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题。另外,前面我们讲到了宏,里面有这么一个例子: #define ABS(x) ((x)>0? (x):-(x)) 当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的定义很容易产生二意性。 我们可以看到...

作者: seahusband 发布时间: 11-20

C++ 模板

/*********** 函数模板 ************/ #include <iostream.h> template <class T> //用实际数据类型替换类属参数T T ssub (T a, T b) { return a-b; } int issub (int a, int b) { return a-b; } float fssub (float a, float b) { return a-b; } void main() { cout<<"issub(2,3)="<<issub(2,3)<<endl; cout<<"fssub(2.5,3.3)="<<fssub(2.5,3.3)<<endl; cout<<"ssub(2,3)="...

作者: luozhiyong131 发布时间: 11-19

uint64_t UINT64_C(x) PRId64

uint64_t UINT64_C(x) PRId64相关的头文件是<inttypes.h> 。 <inttypes.h> 提供的基本功能包括: 定宽整型(如uint64_t) 诸如 uintptr_t 的有用类型 常量宏(如UINT64_C(x)指定给定常量的大小和符号) 限制 格式字符串宏 1 #include <stdio.h> 2 #include <inttypes.h> 3 typedef uint64_t UINT64; 4 #define UINT64_CONST(x) UINT64_C(x) 5 int main() 6 { 7 UINT64 local...

作者: gltmzq 发布时间: 11-19

Linux操作系统的Configure参数解释说明

Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但 万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本 应用。 与一些技巧相比,Configure显得基础一些,当然使用和学习起来就显得枯燥乏味一些,...

作者: lantianyu520 发布时间: 11-19

C++习题-使用对象的引用[3.8]

修改程序,添加一个fun函数,改写main函数。在main函数中调用fun函数,在fun函数中调用change和display函数。在fun函数中使用对象的引用(Student &)作为形参。 #include <iostream> using namespace std; class Student { public: Student(int n,float s):num(n),score(s){} void change(int n,float s) { num = n; score = s; } void display() { cout << num << " " << sc...

作者: chengxiaopeng 发布时间: 11-18

基于数组的堆排序(一)

基于数组的堆排序 (一)什么是堆? 这里的堆不是堆栈的堆,而是一种数据结构,可以视为一棵完全二叉树,既然是 完全二叉树,便可以使用数组存储(不浪费存储的空间,否则应该使用链表存储)。 通常所说的堆,指的是二叉堆。 二叉堆:最大堆和最小堆。 最大堆满足对于某个结点i来讲,Ki>=K2i Ki>=K2i+1也就是父亲永远大于 孩子的原则(这样的话树根就是值最大的结点) 数组是基于0开始的,...

作者: xiayongchun 发布时间: 11-18