自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (4)
  • 收藏
  • 关注

转载 typedef的四个用法

用途一:定义一种类型的别名,可以用作同时声明指针型的多个对象。char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, 和一个字符变量;//以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 同时声明了两个指向字符变量的指针虽然char *pa, *pb的定义方式也可行,但相对来说没有用

2013-03-19 17:42:37 522

原创 【菜鸟C++学习笔记】27.通过operator关键字进行类型转换

在前面说过通过构造函数实现类型的转换,即把数字通过构造函数赋值给一个临时对象,然后把这个临时对象赋值给创建好的对象,实现数值->对象的转换。这里再说下operator关键词+转换类型构成的重载运算符函数,例如:operator int()先定义好转换函数后,下面创建对象:A a(1)cout第一行创建一个对象,并把成员赋值为1,第二行调用转换函数,调用的结果不是返回对象,而

2012-11-15 09:56:50 640

原创 【菜鸟C++学习笔记】26.运算符重载

在面向对象的语言中,如果想对对象进行加、减、赋值等操作,用普通的运算符就会报错,当然可以定义相应用来实现这些功能的函数,但是在类中定义很麻烦,因此提出了运算符重载的概念。在C++中,使用关键词operator来定义,定义方式如下:返回值 operator运算符 () {实现;}注意:C++不允许重载内置运算符的含义,包括指针类型,因此返回值如果是int就会报错!1、前置自加运算符重载

2012-11-05 22:45:58 510

原创 【菜鸟C++学习笔记】26.构造函数

1、成员变量的初始化成员变量除了可以在调用构造函数时将参数传递进去,同时也可以在定义的时候就初始化,方法是在构造函数右加冒号,跟成员变量名称和小括号,括号中写初始化的值。最后跟大括号写函数执行功能,如下面的例子:#include using namespace std;class A{public: A():w(2),h(3){cout<<"长方形面积为:"<<w*h<<endl

2012-10-25 22:51:09 381

原创 【菜鸟C++学习笔记】25.函数重载

函数重载的本质:用相同名字的函数处理不同的事儿1、重载方法:函数名字相同,参数类型不同或参数个数不同等都可以实现重载。例如:#include using namespace std;void fun(int a){cout<<"a的平方:"<<a*a<<endl;}void fun(float b){cout<<"b的倍数:"<<b*b<<endl;}void fun(

2012-10-21 15:34:04 688

原创 【菜鸟C++学习笔记】24. 常见的引用注意问题

1、引用不存在的对象例如:#include using namespace std;class A{public: void set(int i){x=i;} int get(){return x;}private: int x;};A &fun(){ A a; a.set(20); return a;}int main(

2012-10-12 23:51:53 376

原创 【菜鸟C++学习笔记】23. 对象的传递机制

上次说的三种参数传递方式,对于一个数据来说没太大的差别,要是换做是一个具有n个数据成员的对象,那在内存中就需要建立n个副本,这种开销就大了去了,另外的原因如下:1、对象的传递对象作为参数传递一次,就需要调用复制构造函数,为对象在内存中创立一个副本,生命结束后,又需要调用析构函数销毁对象,例如:#include using namespace std;class A{public

2012-10-12 22:27:28 534

原创 【菜鸟C++学习笔记】22. 参数的传递机制

1、按值传递顾名思义,把变量的值直接传递给函数,如下面的例子:#include using namespace std;void swap(int x, int y){ int z; cout<<"swap函数中,交换前x:"<<x<<"\t"<<"y:"<<y<<endl; z=x; x=y; y=z; cout<<"swap函数中,交换后x:"<

2012-10-10 23:23:04 469

原创 【菜鸟C++学习笔记】21.引用

1、基本概念引用:外号,定义方法如下:int &a1=a这条语句的含义是变量a的外号叫a1,这里“&”不再是取地址运算符,这么用就是引用,对a1进行神马操作,都会对a产生同样的影响,例如:#include using namespace std;int main(){ int a;//定义一个变量 int &a1=a;//引用,a的外号叫a1,大家随便用啦 a1=1

2012-10-09 23:06:01 537

原创 【菜鸟C++学习笔记】20.常指针&指向常量的指针&指向常量的常指针

1、常指针:指针不能被修改,但指向的数据可以被修改,定义方法如下:int *const p此时p只能被初始化一个内存地址,当试图对p做p++、p=p1等操作时,编译器将提示出错。2、指向常量的指针:指针可以被修改,但其指向的数据不能被修改,定义方法如下:const int *p此时p可以进行修改,但是其指向的数据的值则不能被修改。3、指向常量的常指针

2012-10-07 22:59:05 512

原创 【菜鸟C++学习笔记】19.this指针

this指针用于记录当前对象的内存地址,然后通过“->”访问对象的成员,如:#include using namespace std;class A{public: int get(){return i;} void set(int x){this->i=x;cout<<"this指针保存的内存地址"<<this<<endl;}private: int i;};int

2012-10-07 22:09:59 743

原创 【菜鸟C++学习笔记】18.动态内存

1、内存泄露:在定义一个指针并初始化后,如果没有删除这个指针就对其重新赋值,就会造成内存泄露,如:int *p=new int;p=new int;第一行时,程序为p定义了一块内存空间,但第二行将新的空间赋给p,此时无法通过p指针访问第一块内存空间了,且第一块内存空间又没被删除,因此会出现内存泄露的情况,为此,在使用new后,如果不再使用这块内存空间,就要用delete释放它。

2012-08-06 11:03:14 920

原创 【菜鸟C++学习笔记】17.指针在堆中的操作

1、用指针创建堆中空间:堆的好处是可以存储较大的数据,且存储的数据只要不是程序员手动将其释放,那么就会永远保存在堆中。另外,堆中每个内存单元都是匿名的,因此必须先在堆中申请一个内存单元的地址,然后保存到一个指针中,通过该指针即可访问该内存单元的数据,这样就避免了试图修改它的非法操作。在C++中使用关键字new创建一个堆并分配内存,在new后面需要跟一个要分配的对象类型,编译器根据这个类型来

2012-07-18 12:11:52 626

转载 栈和堆

1、数据在内存中的存放形式:1)栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值等。2)堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由操作系统回收。3)全局区/静态区(static):存储全局变量和静态变量,初始化的 全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。  4

2012-07-17 22:11:27 258

原创 【菜鸟C++学习笔记】16.地址和指针

1、地址:内存中的编号在C++中,系统会给每一个变量分配一个内存空间,这块空间一般有个地址,就是编号,通过这个编号,系统可以访问这个变量并进行操作,计算机通过"&"命令获取内存地址,如下面程序:#includeusing namespace std;int main(){ int i=1; cout<<"i这个变量的地址是:"<<&i<<endl; return 0;}输

2012-07-17 02:49:32 547

原创 【菜鸟C++学习笔记】15.switch语句

1、基本结构:switch(变量){case 1:语句;break; case 2:语句;break; ...... case n:语句;break; default: 语句;}可见,switch语句解决的是多条件下if嵌套太麻烦的问题,在switch后的变量可以使数字、字符或表达式,总之要有一个可以判断的值,如果这个值与case后面的某个值相符时,与之关联的语句就会执行,执行

2012-07-16 00:06:43 504

原创 【菜鸟C++学习笔记】14.for语句

1、基本结构:for(定义初始化;条件;自加/减){语句;}作用:简化了while循环中设定循环次数太麻烦的问题,如下面程序:#includeusing namespace std;int main(){ int time; cout<<"请输入观看的次数"<<endl; cin>>time; for(int i=0;i<time;i++) { cout<<"你

2012-07-15 23:06:55 406

原创 【菜鸟C++学习笔记】13.while语句

1、while基本结构:while(表达式){语句;}作用:如果while后的表达式为真,程序就不断地执行一段代码,如:#includeusing namespace std;int main(){ int i=1; while(i<10) { cout<<"*"; i++; } cout<<"\n"; cout<<"程序结束"<<endl; cou

2012-07-15 18:57:38 493

原创 【菜鸟C++学习笔记】12.构造函数与析构函数

1、构造函数定义:用于创建一个类所有对象的函数,函数名应与类同名,另外声明定义可以合在一起构成隐式内联函数。使用方法参考下面程序:#includeusing namespace std;class rectangle{public: rectangle(int l,int w)//rectangle类的构造函数 {length=l;width=w;} int area()

2012-07-15 11:01:45 436

原创 【菜鸟C++学习笔记】11.内联函数与const成员函数

1、普通内联函数对一般的函数,定以后编码器会在内存中创建一个指令集,调用这个函数时,程序会跳转到指令集处,运行完毕后又会调回到原来的语句执行下一条。设想如果程序执行对该函数的n次调用,则会跳转n次,效率大为降低。为了解决这个问题,使用了内联函数,声明后调用该函数时会将其代码复制到调用处,这时就不需要来回跳转了,适合比较小的函数且调用次数较多的情况。具体使用方法参考下面程序:#inclu

2012-07-14 12:20:27 386

原创 【菜鸟C++学习笔记】10.类、对象和成员

类是对象的抽象,对象是具体事务,里面包括的玩意儿称为成员。1、类的声明:类必须声明后才能使用,声明方法如下:class Human{public: void get_age(); void get_weight(); private: int age; int weight;};分析:第1行:声明了一个Human类,接着的

2012-07-13 16:16:48 303

原创 【菜鸟C++学习笔记】9.三目运算符

1、作用:定义格式:x=(a>b)?a:b;作用相当于if...else...判断,即如果括号内表达式为真,则将”:“左边的a赋值给x,否则将”:“右边的b赋值给x。2、优先问题:三目运算符的执行方向为自左向右,如:x=a>b?a:a>b?a:b相当于x=a>b?a:(a>b?a:b)3、类型问题:三目运算符允许对不同类型的数值进行操作,如下

2012-07-11 19:06:59 973

原创 【菜鸟C++学习笔记】8.if语句

1、简单if语句结构:if(表达式)    语句;下一条语句;if用于判断其后的括号中表达式是否为真,如果为真,则执行小括号后面的语句,否则执行下一条语句。#includeusing namespace std;int main(){ int a=1; if(a==0) { cout<<"a=0"<<endl; } //大括号内的语句算作一条语

2012-07-11 18:04:54 611

原创 【菜鸟C++学习笔记】7.运算符与表达式

1、赋值运算符(=):对操作数进行赋值的功能如:a=1;2、数学运算符:进行数学运算包括:+,-,*,/,%(求余)讨论:1)赋值运算符与数学运算符的结合使用“a=a+6” 等价于 “a+=6”,“+=”表示将右边的值与左边的值相加后再赋给左边的值,同理还有“-=”,“/=”等。2)自加(++)和自减(--):a++:表示取值之后,自动加1++a

2012-07-11 14:05:05 516

原创 【matlab】pulstran函数

1、作用:生成连续或离散的脉冲串;2、定义:Y=pulstran (t,d,'func')其中t为时间轴,一般是一个一维数组d为采样间隔,可以是两列,第一列对应偏移量,第二列对应增益量连续函数func指定了脉冲串的形状,包括:高斯调制正弦信号:gauspuls;非周期的矩形信号:rectpuls;非周期的三角信号:tripuls 3、讨论:1)pulst

2012-07-09 13:45:44 16287 4

原创 【菜鸟C++学习笔记】6.常量

常量:常量的值是不可改变的,常量初始化后不能再对其进行赋值。其初始化方法如下:const int a=1; //整型常量aconst double PI=3.1415926; //double型常量PIconst char b='a'; //字符型常量分析:常量的定义需要加关键词“const”枚举型常量:用于将文字代替数字,其定义的关键字为“enum”,使用方法参考下面程序:

2012-07-04 22:45:43 506

原创 【菜鸟C++学习笔记】5.变量的类型

布尔型变量:有两个逻辑值,1=ture,0=false,其定义及赋值方法如下:bool a;a=true;讨论:在第2行中,也可用a=1;进行赋值。字符型变量:1)字符:指计算机中的字符集——ASCII码        一个字符占位一个字节,一个字节含8位,因此在定义一个字符型变量时,系统会为该变量分配一个字节的内存空间。        在二进制中,最大的

2012-07-04 16:37:32 608

原创 【菜鸟C++学习笔记】4.局部变量与全局变量

变量:变量在定义时,系统会为其分配一个内存地址,赋值时会通过这个地址写入内存,但是这属于临时存储!局部变量:在函数内部声明的变量,寿命随函数调用结束而结束#includeusing namespace std;void change(int);int main(){int a=1;cout<<"调用前a="<<a<<endl;change(a);cout<<"调用后a=

2012-07-02 14:45:25 308

原创 【菜鸟C++学习笔记】3.函数

函数定义:完成某个功能的模块#includeusing namespace std;int add(int a, int b){return a+b;}int main(){int a,b,c;cout<<"请输入两个整数:";cin>>a;cin>>b;c=add(a,b);cout<<"a+b="<<c<<endl;return 0;}输出结果:请输入

2012-07-02 12:01:21 350

原创 【菜鸟C++学习笔记】2.命名空间的作用

命名空间可以避免变量名重复引发的冲突,如:#includeusing namespace std;namespace a1{int b=1;}namespace a2{int b=2;}int main(){int b=3;cout<<b<<" "<<a1::b<<" "<<a2::b<<endl;return 0;}输出结果:3 1 2分析:在这个程序中

2012-07-02 11:32:41 411

原创 【菜鸟C++学习笔记】1.第一个C++程序

程序1#include using namespace std; int main() { cout<<"Hello World"<<endl; return 0; } 输出结果:Hello World第一行:#后代表预处理命令,在编译之前运行; 是个标准库,表示输入/输出流,它包含众多成员函数,如cout等等;  第二行:表示使用命名空间std,否则第五

2012-06-02 03:20:21 270

Head First C# 赛狗日

自己设计实现的C#的那本书上赛狗日的程序 = = 名字有点别扭 书上这个实验没有源代码,所以自己写了一个,要求的功能全部实现了

2014-02-10

基于VC++的虚拟示波器的设计与实现

基于VC++的虚拟示波器的设计与实现,用VC++和LABVIEW的MessrueStidio实现的

2013-12-24

Teechart绘制随机曲线实例

利用Teechart插件绘制实时曲线,同时让曲线滚动显示

2013-12-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除