- 博客(22)
- 资源 (13)
- 问答 (1)
- 收藏
- 关注
原创 关于多态的讨论
首先来看看多态的定义,这里引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。多态在C++中是通过虚函数(virrtual)实现的。C++中,实现多态有以下方法:虚函数,抽象类,重载,覆盖,模板。C++支持两种多态:
2015-03-28 12:30:34 460
原创 指针大小
sozeof(指针)是多少?32位系统下是4,请看代码:#include using namespace std;int main(){ double a = 6.35; int b = 8; char str[] = "Hello World!"; char* p = str; double* q = &a; int* r = &b;
2015-03-27 19:49:34 392
原创 有无显式初始化列表对构造函数和析构函数的影响
先看看有显式初始化列表的例子:#include using namespace std;class A{public: A(){cout << "A" << endl;} ~A(){cout << "~A" << endl;}};class B:public A{public: B(A& a):_a(a) { cout <<
2015-03-25 12:40:34 744
原创 TCP初始化序列号ISN的程序实现
RFC1948中提出了一个较好的初始化序列号ISN随机生成算法,简单描述就是:ISN = C +H(sourceIP, sourcePort, destIP, destPort)H中的4个参数分别是:源IP,源端口号,目的IP,目的端口号。闲话少说,看代码。#include#include#include#include //unsleep()using names
2015-03-24 22:00:42 1941
原创 union和struct类型大小的跨平台讨论
这个问题的教材网上很多,我就不多说了这里给出一个:点击打开链接这个问题又最容易引起争执,为什么呢?与平台或者说与编译器有关系,先看看下面的代码:#include using namespace std;union U1{ char a[9]; int b;};union U2{ U1 a; double b;};union U3{
2015-03-21 15:27:08 861 1
原创 两个超大数相乘
需要注意的都在代码注释里,自己看吧,欢迎讨论。#include#include#includeusing namespace std;//模拟手工加法string add(string str1, string str2){ int i; string str; int len_str1 = str1.length(); int len_str2 = str2.
2015-03-20 16:20:47 974
原创 两个超大数相加
解决超大数相加的问题的一种思路是把整形转化成字符串,废话不多说直接上代码,已经调试通过。#include#include#includeusing namespace std;string add(string str1, string str2){ int i; string str; int len_str1 = str1.length(); int len_
2015-03-19 22:12:52 725
原创 堆排序
#include#include#include //exit(1)using namespace std;void HeapSort(int* a, int size);void HeapBuild(int* a, int size);void HeapAdjust(int* a, int i, int size);//堆排序void HeapSort(int* a, int
2015-03-19 17:12:44 504 1
原创 冒泡排序
#include#include#include#include //exit(1)using namespace std;void bubbleSort(vector& data){ int count = data.size(); int tag = false; //设置是否需要继续冒泡的标志位 for(int i=0; i<count; i++) { for(i
2015-03-17 22:04:18 408
原创 计算机笔试常见的一些错误
1. NULL是指未知的值或无任何值,而不是空字符串;2. 可在C程序中用做用户标识符的一组标识符是( C)A.and B. Date C.Hi D.case解释:C语言中把标识符分为三类:关键字(case),预定义标识符(DATE,and),用户自定义标识符。3. main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
2015-03-17 21:06:19 782
原创 网络攻击的主要技术和手段
(1)拒绝服务攻击。利用网络协议的缺陷或耗尽被攻击对象的资源,目标是让目标计算机或网络无法提供正常的服务或资源访问,使目标计算机停止响应甚至崩溃;分布式拒绝服务是在传统DOS攻击基础上产生的,该方法通过占领傀儡机来实施,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DOS攻击,从而成倍地提高拒绝服务攻击的威力。(2)入侵攻击。入侵者的入侵途径有三种,一是物理途径—入侵者利用管理缺陷或人
2015-03-17 19:59:48 7406
原创 tracert命令
tracert是路由跟踪实用程序,用于确定IP数据包访问目标所采取的路径。tracert命令用IP生存时间(TTL)字段和ICMP错误消息来确定从一个主机到网络上其他主机所经过的路由。下图是试验结果:
2015-03-17 19:56:05 674
原创 crond进程的应用
crond是Linux系统下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与Windows下的计划任务类似,当安装完linux操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux下的任务调度分为两类,系统任务调度和用户任务调度。系统任务调度:系统周期性所要执行的操作,例如写
2015-03-17 19:51:14 863
转载 静态局部变量
在局部变量前加上“static”关键字,就成了静态局部变量。静态局部变量存放在内存的全局数据区。函数结束时,静态局部变量不会消失,每次该函数调用 时,也不会为其重新分配空间。它始终驻留在全局数据区,直到程序运行结束。静态局部变量的初始化与全局变量类似.如果不为其显式初始化,则C++自动为其 初始化为0。静态局部变量与全局变量共享全局数据区,但静态局部变量只在定义它的函数中可见。静态局部变量
2015-03-13 09:00:21 451
原创 C语言union的一个例子的讨论
在任何同一时刻, 联合中只存放了一个被选中的成员(所有成员共用一块地址空间)#i ncludeunion{int i;char x[2];}a; void main(){a.x[0] = 10;a.x[1] = 1;printf("%d",a.i);}那么上面程序输出的结果是什么?
2015-03-09 11:15:59 557
原创 C++库函数strcpy的实现
char *strcpy(char *strDest, const char*strSrc){if ( strDest == NULL || strSrc == NULL)return NULL ;if ( strDest == strSrc)return strDest ;char *tempptr = strDest ;while( (*strDest++ = *s
2015-03-09 11:11:49 448
原创 C++构造函数例子
已知String类定义如下:class String{public:String(constchar *str = NULL); // 通用构造函数String(constString &another); // 拷贝构造函数~ String(); // 析构函数String &operater =(const String &rhs); // 赋值函数privat
2015-03-09 11:08:16 716
原创 Windows网络命令net
1.net命令下面是帮助信息:例子1:共享E盘下的software文件夹从下面可以看到结果:可以用下面的命令删除共享文件夹:例子2:添加用户和密码:例子3:激活和关闭guest用户:2.远程登录命令telnetWindows7默认没有安装这个命令,可以参见这个教程安装telnet服务:http://www.cr
2015-03-06 12:57:50 600
原创 Linux常用命令(查找命令)
Linux中有许多查找命令,优先使用whereis和locate命令,因为他们直接用数据库搜索文件,并没有实际搜索硬盘,如果真的找不到,采用find命令。1.which查找“执行文件”命令格式:which -a command-a:列出所有找到的命令全称
2015-03-05 13:08:03 470
原创 Linux常用命令(文件和目录)
cd /home 进入目录home;cd .. 返回上一级目录;pwd 显示工作路径;ls 查看本目录中的文件;ls -l 显示本目录中文件的详细信息;ls -a 显示隐藏文件;mkdir picture 创建名为picture的文件夹;rm -f file1 删除名为file1的文件;rmdir picture 删除名为picture的文件夹(
2015-03-01 20:34:50 458
原创 插入排序
#include int main(){ int arr[10] = {31, 41, 59, 21, 45, 58, 45, 59, 32, 12}; int j, i, key; for(j =1; j<10; j++) { key = arr[j]; i = j-1; while(i>=0 && arr[i]<=key) { arr[i
2015-03-01 19:35:59 388
攻击图技术应用研究综述
2019-12-18
MySQL 5.1参考手册
2014-09-09
24小时学通qt编程
2014-09-07
C++ 设计新思维:范型编程与设计模式之应用 中文PDF
2014-09-07
DOS高手速成
2014-09-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人