c++笔记
文章平均质量分 62
xiaoshengyige
这个作者很懒,什么都没留下…
展开
-
更改c++私有变量的方法
1.用构造函数进行赋值。(调用代参构造函数的方法:class A{int x ,y;public:A(int a,int b){x=a;y=b;}};void main(){A a(5,6);//调用带参构造函数的方原创 2011-09-24 11:12:14 · 1167 阅读 · 0 评论 -
C++中关于new和delete的使用
最近一直在啃 C++ Primer 中文版第4版,发现 C++中new和delete应用遍布全书,现对其使用作简单总结。在C++中,可以使用new和delete动态创建和释放数组或者单个对象,现在对它们的使用一一道来。1.创建动态数组 数组类型的变量有三个重要的限制:数组长度固定不变,在编译时必须知道它的长度,数组只在定义它的块语句中存在。对于动态分配的数组,虽然长度是固转载 2012-12-10 15:21:00 · 453 阅读 · 0 评论 -
C++的五种内存存储区
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在转载 2013-01-11 16:41:41 · 576 阅读 · 0 评论 -
office VBA 学习
http://www.officefans.net/cdb/viewthread.php tid=25823&fpage=1&highlight=%B7%B5%BB%D8%2B%D0%D0%BA%C5以下是近段时间从不同地方收集到的一些学习资料,希望对新手有借鉴作用,同时感谢各位对我的支持和帮助,先发60小点,代码可能不完全正确,请指正.全部显示1,Application.Comman转载 2013-01-21 14:21:26 · 6536 阅读 · 0 评论 -
字符串匹配KMP算法
字符串匹配是计算机的基本任务之一。举例来说,有一个字符串”BBC ABCDAB ABCDABCDABDE”,我想知道,里面是否包含另一个字符串”ABCDABD”?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上转载 2013-05-03 08:49:20 · 551 阅读 · 0 评论 -
sizeof用法,指针变量和数组变量
.指针变量的sizeof学过数据结构的你应该知道指针是一个很重要的概念,它记录了另一个对象的地址。既然是来存放地址的,那么它当然等于计算机内部地址总线的宽度。所以在32位计算机中,一个指针变量的返回值必定是4(注意结果是以字节为单位),可以预计,在将来的64位系统中指针变量的sizeof结果为8。char* pc = "abc";int* pi;string* ps转载 2013-07-14 23:33:42 · 941 阅读 · 0 评论 -
关于OnCreate和OnDraw
初学MFC 刚开始,我在view类中的OnCreate()中写了一段向窗口中插入一个光标的代码,一切正常,然后又在OnDraw()中写了一段想窗口中插入一段字符的代码,也一切正常,但当我把这两个东西颠倒过来,也就是在OnCreate()中写插入一段字符的时候,运行是根本看不到效果,而在OnDraw()中写插入光标的时候,当我用鼠标改变窗口的大小的时候,程序就爆掉了,请问这是为什么?转载 2013-08-08 11:35:46 · 1812 阅读 · 0 评论 -
vim命令
高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的::qx 开始记录宏,并将结果存入寄存器xq 退出记录模式@x 播放记录在x寄存器中的宏命令稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,转载 2013-08-08 15:10:44 · 481 阅读 · 0 评论 -
数组指针,指针数组,动态二维数组,指针
数组中每个元素具有相同的数据类型,数组元素的类型就是数组的基类型.如果一个数组中的每个元素均为指针类型,即由指针变量构成的数组,这些数组称为指针数组,他是指针的集合.指针数组的形式:类型 *数组名[常量表达式]例如: int *pa[5];表示有5个指针变量组成的指针数组,数组中的每个数组元素都是指针。注意: int *pa[5] 与 int (*pb)[5]的 区别i原创 2013-08-30 16:12:30 · 1328 阅读 · 0 评论 -
数组名和指针
1. #include 2. int main(int argc, char* argv[])3. {4. char str[10];5. char *pStr = str;6. cout 7. cout 8. return 0;9. } 1、数组名不是指针 我们先来推翻"数组名就是指针"的说法,用反证法。 证明 数组名不是指针转载 2013-09-03 09:22:15 · 613 阅读 · 0 评论 -
char *c和char c[]区别
问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码运行结果2293628 4199056 abc2293624 2293624 abc2293620 4199056 abc#include using nam转载 2013-09-16 10:38:24 · 967 阅读 · 0 评论 -
C printf() 详解——printf('%08x',number); 程序员面试宝典中的一个错误 char * b=(char *)&a
本文转自:http://www.cppblog.com/wuzimian/archive/2012/05/23/175925.aspx1 #include 2 using namespace std; 3 int main() 4 { 5 unsigned int a = 0xFFFFFFF7; 6 unsigned char i = (unsign转载 2013-09-19 23:36:13 · 8249 阅读 · 0 评论 -
C中的位域与大小端问题
C中的位域与大小端问题(整理自网上资料)字节内也是有大小端问题,与字节中的大小端类似:1)little endian中的位应该这样排列: 01234567 即排在前面的是低位。因此,先分配least significant bits 2)而在Big endian中,位应该这样排列: 76543210 即排在前面的是高位。因此,先分配most signific转载 2013-10-21 11:26:19 · 1686 阅读 · 0 评论 -
转载九贱的『我理解的逻辑地址、线性地址、物理地址和虚拟地址』
过年了,发个年终总结贴,只是个人理解,不包正确哈。本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机转载 2013-12-11 10:06:07 · 842 阅读 · 0 评论 -
linux下makefile的用法
目的: 基本掌握了 make 的用法,能在Linux系统上编程。环境: Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备: 准备三个文件:file1.c, file2.c, file2.h file1.c: #include转载 2012-11-13 20:40:46 · 658 阅读 · 0 评论 -
new创建对象和直接声明创建对象
有时候书看多了,遇到了以前没注意到的小细节就会犯迷糊,查了些资料大致弄明白了点关于 new对象和直接引用对象的区别。众所周知,在C++里面可以new对象,也可以直接声明对象。编译器把内存分为三个部分:1.静态存储区域:主要保存全局变量和静态变量。 生存期:整个程序。2.堆:存储动态生成的变量。生存期:自己来决定。3.栈:存储调用函数相关的变量和地址等。生存期转载 2012-11-09 11:08:45 · 5716 阅读 · 0 评论 -
浅谈C++容器( 三)
有了对数据结构的基本认识,那么对高级语言所提出的容器的概念就很容易理解。下面我们就来了解一下C++ 标准模板库(STL) 提所供的10 种通用容器。什么是容器首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了转载 2012-11-05 10:45:59 · 457 阅读 · 0 评论 -
c++画圆的程序
CMagtomoDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereif(pDoc->emt->HasCalculated()) {原创 2011-10-17 23:50:18 · 11386 阅读 · 1 评论 -
c++中的#include "stdafx.h"(转自新浪博客)
c++中的#include "stdafx.h" (2009-10-28 10:34:12)转载标签: 电脑 visualc 头文件 mfc it分类: 计算机学习转载 2011-10-09 17:03:37 · 479 阅读 · 0 评论 -
#pragma once
#pragma once 这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次 #pragma once用来防止某个头文件被多次include,#ifndef,#define,#endif用来防止某个宏被多次定义。转载 2011-10-09 17:04:47 · 699 阅读 · 5 评论 -
static、extern、volatile的用法
static的用法: 静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。 用法1:函数内部声明的static变量,可作为对象间的一种通信机制 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个转载 2012-02-07 09:45:48 · 556 阅读 · 0 评论 -
typedef用法总结
第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针转载 2012-04-01 17:05:35 · 596 阅读 · 0 评论 -
串口调试助手源程序(一)转
http://www.gjwtech.com 作者龚建伟在众多网友的支持下,串口调试助手从2001年5月21日发布至今,短短一个月,在全国各地累计下载量近5000人次,在近200多个电子邮件中,20多人提供了使用测试意见,更有50多位朋友提出要串口调试助手的源代码,为了答谢谢朋友们的支持,公开推出我最初用VC控件MSComm编写串口通信程序的源代码,并写出详细的编程过程,姑且叫串口调试助手源转载 2012-04-06 18:52:00 · 1373 阅读 · 0 评论 -
讲讲volatile的作用
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic转载 2012-07-16 08:46:15 · 866 阅读 · 0 评论 -
C/C++语言中Static的作用详述
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global variable转载 2012-08-05 17:44:02 · 685 阅读 · 1 评论 -
C++中重载与重写函数区别及虚函数
C++中的虚函数(virtual function)1.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public: virtual void foo() { cout };class B: public A{public:转载 2012-11-01 16:06:21 · 1031 阅读 · 0 评论 -
虚函数、纯虚函数、重载函数的作用与区别
虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的此函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public:virtual void Eat(){……};转载 2012-11-01 14:59:12 · 4290 阅读 · 0 评论 -
a=a+++b;c=a+++b;
int a=10,b=9,c=0;分别a=a+++b; a=a+b;a++c=a+++b;c=a+b; a++输出:a=20;b=19;原创 2012-11-04 14:58:30 · 1254 阅读 · 0 评论 -
c++模板
1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.转载 2012-11-05 10:33:57 · 323 阅读 · 0 评论 -
visual 2010 c++新特性
微软即将在2010年4月12日发布VS2010的正式版,对于c++语言做了修改,使之更加符合c++标准。下面对于微软对于c++语言的修改做一下分析!Lambda表达式很多编程编程语言都支持匿名函数(anonymous function)。所谓匿名函数,就是这个函数只有函数体,而没有函数名。Lambda表达式就是实现匿名函数的一种编程技巧,它为编写匿名函数提供了简明的函数式的转载 2012-11-05 10:35:08 · 380 阅读 · 0 评论 -
c++写的MFC中截特定区域图像的程序
/*类名称:bmpScreen.h。; 类功能:提供了一个MFC下截取窗口特定部分并保存为bmp图片的类。; 类成员函数:void screenShot(CRect rect,int left,int top,char *name); 函数参数:Crect rect, int left, int top, int top, char* name。; 类参数说明:原创 2011-10-17 23:45:47 · 4908 阅读 · 11 评论