木子屋 Dnawo's BLOG

2010-11 归档

共 49 篇

C++默认构造函数

代码一: 执行正确,说明编译器为我们创建了默认了构造函数(没有参数的构造函数)。 代码二: 执行正确并输出了文本,说明使用了我们自定义的默认构造函数。 代码三: 执行出错,提示缺少默认的构造函数。 代码四: 执行正确并输出文本,说明使用了我们自定义的默认构造函数。 总结 在C++中,当我们没有为类定义任何构造函数时,编译会创建默认构造函数;如果我们为类定义了一个构造函数,无论该构造函数是默认构造函数,还是非默认构造函数,编译器都不再为我们创建默认构造函数,在C#中也是这样子的。

C++程序每次运行时同一变量的内存地址都相同的解释

现象:程序每次运行时,&i的值都相同,都是0012FF44。 疑问:i属于局部变量,保存在栈中,它占据的内存是编译器自动分配和释放的,那怎么可能程序每次运行i都保存在同一地址中? 答疑:在程序运行时,程序被分配到一块内存,程序以此做为基地址,然后再在基地址上作偏移来使用内存,所以,&i实际上是一个偏移地址,它的实际地址=基地址+偏移地址。

C++参数默认值示例

说明 ·参数默认值最好在函数声明时指定; ·函数有多个参数时,当为某个参数指定了默认值时,则其后面的参数都必须指定默认值; ·调用函数时,如果为某个有默认值的参数传了值,则其前面的参数都必须传值(有默认值的也得传);

C++栈和堆的几点区别

1).存储对象不同 栈主要存储程序中的临时变量,这些临时变量包括函数的参数变量、函数内的临时变量、指针变量(指的是指针本身)、数组变量等。 堆主要存储程序中动态申请的内存块,它们通常是new运算符创建的对象。 2).分配方式不同 栈的分配和释放是由编译器完成的,无需手工实现。 堆都是由new运算符动态申请分配,再手工调用delete函数来释放的,容易产生内存泄漏。 3).增长方向不同 栈的增长方向是向下的,即向着内存地址减小的方向,是一块连续的内存区域。 堆的增长方向是向上的,即向着内存地址增加的方向,是不连续的内存区域。 4).空间大小不同 栈的增长方向是向下的,所以一般大有限制(通常是2M),因此,用户能从栈获得的空间较小,当申请的空间超过栈的剩余空间时,将提示溢出。…

英文阅读助手

将以上内容复制保存成"英文阅读助手.htm",然后双击打开,在文本框中输入一个单词或句子,点击阅读按钮,计算机就能把它读出来了。

用peid查看dll文件用什么语言编写的

有时拿到一个dll,它可能是用C#编写的,也可能是VB或C++,下边介绍一个工具peid,它能快速查看dll文件是用什么语言编写的。 运行peid,打开一个dll文件,界面上立即显示出它是用什么语言编写的: peid下载地址:http://www.pediy.com/tools/unpack/File_analysers/peid/peid.rar

Windows7上不能安装SQL Server2005企业版

在Windows7上不能安装SQL Server2005企业版,若尝试安装,则只能安装"工作站组件、联机丛书和开发工具",其他SQL Server Database Services、Analysis Services等服务均安装不上。后经测试,SQL Server2005标准版所有服务、组件在Windows7上可以成功安装: SQL Server2005标准版下载:点击下载

在Windows7任务栏中添加快速启动栏

我机子安装的是Windows7旗舰版,默认安装完后任务栏没有快速启动栏,执行以下几个步骤即可将快速启动栏添加到任务栏: ①.右键单击任务栏,去掉"锁定任务栏"前的钩; ②.右键单击任务栏,选择"工具栏→新建工具栏"; ③.在文件夹中输入"%AppData%\Microsoft\Internet Explorer\Quick Launch",点击"选择文件夹"按钮; ④.右键单击快速启动栏,去掉"显示文本"和"显示标题"前面的钩; ⑤.用鼠标将快速启动栏拖到任务栏左边,再锁定任务栏即可;