- 博客(28)
- 收藏
- 关注
原创 学习C++需要注意的问题
#include"A.h"和#include的区别:前者是指编译器将从当前工作目录上开始查找此文件;后者是指编译器从标准库目录中开始查找此文件头文件的作用:加强安全检测;通过头文件可能方便地调用库功能,而不必关心其实现方式*,&修饰符的位置:为了避免误解,最好将其紧靠变量名C++中值得传递方式:有三种方式:值传递、指针传递、引用传
2015-11-30 22:48:12 831
原创 C++多态的实现方式总结
实现多态有两种方法:1、覆盖***********覆盖是指子类重新定义父类的虚函数的做法。2、重载***********重载是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。分析:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%重载是在同一个类中相同的返回类型和方法名,但是参数的
2015-11-30 14:45:52 15194 2
原创 什么是URL地址?
URL地址URL(Uniform Resource Locator:统一资源定位器)是WWW页的地址,它从左到右由下述部分组成: ·Internet资源类型(scheme):指出WWW客户程序用来操作的工具。如“http://”表示WWW服务器,“ftp://”表示FTP服务器,“gopher://”表示Gopher服务器,而“new:”表示Newgroup新闻组。
2015-11-30 12:46:25 21843
原创 C++虚函数的总结
在基类中加入Virtual关键字的函数就是虚拟函数,在基类的派生类中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类的指针指向派生类的对象时,对指针虚拟函数的调用实际上是调用了派生类的虚拟函数。这是面向对象中多态性的体现。例子:class A { public: virtual void foo() { cout<<"A::foo
2015-11-30 11:16:53 1111
原创 C++的三个基本特征:封装、继承、多态
什么是封装?***********************************************************************************************封装可以隐藏实现细节,使代码模块化;封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。在面向对象编程上可以理解为:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的
2015-11-30 11:10:21 850
原创 单链表的修改和删除
单链表建立和单链表的插入完了以后,如果要对链表进行修改和删除,用以下代码:#include "stdafx.h"#include#includeusing namespace std;struct Student{ string name; string score; Student *next;//定义了指向Candidate类型变量的指针};Student * Creat
2015-11-28 22:19:24 7065 3
原创 单链表的插入操作
单链表的建立中已经建立了一个链表,若要在两个同学之间插入一个同学的成绩代码如下:#include "stdafx.h"#include#includeusing namespace std;struct Student{ string name; string score; Student *next;//定义了指向Candidate类型变量的指针};Student *
2015-11-28 21:58:44 1501
原创 C++中单链表的建立
单链表的建立和输出:#include "stdafx.h"#include#includeusing namespace std;struct Student{ string name; string score; Student*next;//定义了指针};int main(){ int n; cout << "请输入学生的总数:"; cin >> n; int
2015-11-28 21:48:00 925
原创 二维数组和指针的关系
在C/C++中,数组和指针有着密切的关系,但是二者是完全不同的数据结构。二维数组是数组的数组,数组的每一个元素是一个数组。1、那么怎么利用一个数组的访问方式来访问二维数组呢?首先,定义一个二维数组int iArr[2][3]={0,1,2,3,4,5};我们可以用一个指向int型的指针变量来访问这个数组,下面代码是将数组一维化:int*p=iArr[0];上面的iArr
2015-11-28 21:06:29 1117
原创 c++中exit的使用
#include // 使用atexit()函数所必须包含的头文件stdlib.h#include using namespace std;void terminateTest(){ cout << "程序正在结束..." << endl;}int main(void){ // 注册退出处理函数 atexit(terminateTest); cout << "the
2015-11-28 15:16:13 4272
原创 C++变量及初始化的总结
C++类中变量的初始化规则:1、除了静态全局变量,所有其它变量都不可以在定义的时候初始化2、常量数据成员,必须在构造函数成员列表中初始化3、普通的数据成员,可以在函数列表中初始化,也可以在构造函数内部初始化看下例:class initialVar{ public: static const int c = 0; int a,d; cons
2015-11-28 14:57:02 445
原创 C++中static关键字的使用总结
1、初始化下代码中能够正确执行,在控制台中输出0,static int x语句做了两件事:定义了一个变量;将变量x初始化为0.#include #include int main(void){ //int y; static int x; //printf("%d %d",x,y); printf("%d", x);}下面代码发生错误#include #in
2015-11-28 14:41:08 529
原创 C++常用头文件总结
#include //STL 双端队列容器#include //异常处理类#include //文件输入/输出#include //STL 定义运算函数(代替运算符)#include //定义各种数据类型最值常量#include //STL 线性列表容器#include //STL 映射容器#incl
2015-11-27 20:48:10 520
原创 C++中随机函数rand()和srand()的用法
1、rand()函数名: rand 功 能: 随机数发生器 用 法: int rand(void); 所在头文件: stdlib.h 函数说明 : rand()的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定 的范围里可看成是随机的。
2015-11-27 15:33:51 815
原创 matlab的符号计算
1、符号表达式的生成符号表达式包括符号函数和符号方程,它有两种生成方式:(1)符号表达式在matlab内部表示为字符串。如sin、diff等。不推荐使用(2)使用sym、syms函数建立符号表达式>> f=sym('sin(x)') f = sin(x) >> f=sym('sin(x)^2=0') f = sin(x)^2 == 0
2015-11-26 21:32:06 669
原创 K-means聚类算法
聚类算法,不是分类算法。分类算法是给一个数据,然后判断这个数据属于已分好的类中的具体哪一类。聚类算法是给一大堆原始数据,然后通过算法将其中具有相似特征聚为一类。这里的k-means聚类,是事先给出原始数据所含的类数,然后将含有相似特征的数据聚为一个类中。以下例子是一个三维高斯分布原始数据进行Kmeans聚类得到的分类:matlab代码:main.mclear all;
2015-11-26 20:34:31 781
原创 C++基类和派生类的赋值
在C/C++中,经常会发生数据类型转换,例如整形数据可以赋值给浮点型变量,在赋值之前,先把整形数据转换为浮点型。数据类型转换的前提是,编译器知道如何对数据进行取舍。类也是一种数据类型,也可以发生数据类型转换。不过这种转换只有在基类和派生类之间才有意义。由于派生类包含从基类继承的成员,因此可以将派生类的对象赋值给基类对象。实际上,对象之间的赋值是成员变量的赋值,成员函数不存在赋值问题。在
2015-11-26 15:33:43 1951
原创 C++重载<<和>>(输入输出运算符)
在C++中,系统已经对左移右移运算符分别进行了重载,使其能够用于输入输出,但是输入输出的处理对象只能是系统内建的数据类型。系统重载这两个运算符是以系统类成员函数的形式进行的,因此:cout如果自定义了一种新的数据类型,需要用输入输出运算符去处理,那么就要重载。重载输入运算符:下面用全局函数的形式重载输入运算符,使它能够读入两个double类型的数据,并转换为一个复数,保存到复数对象
2015-11-26 14:50:00 3341
原创 C++用全局函数重载运算符
运算符重载函数既可以声明为类的成员函数,也可以声明为所有类之外的全局函数。将运算符重载函数声明为全局函数时,二元操作符需要两个参数,一元操作符需要一个参数,而其中必须有一个参数是对象,好让编译器区分这是程序员自定义的运算符。以下例子是用全局运算符重载计算复数的和:#include using namespace std;class complex{private: doubl
2015-11-26 14:30:26 5300
原创 C++运算符重载
所谓重载就是赋予新的含义。函数重载可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载也是这个道理,同一个运算符可以有不同的功能。C++允许程序员自己重载运算符。下面代码定义了一个复数类,通过运算符重载,用“+”号实现了复数的加法运算:#include using namespace std;class complex{private: double real;
2015-11-26 13:53:31 552
原创 matlab曲线拟合
曲线拟合不要求逼近函数通过各采样点,但要求尽量的接近这些点,使误差在某种意义上达到最小。 曲线拟合的实现:在matlab中,用polyfit函数来求得最小二乘拟合多项式的系数,再用polyval函数按所得的多项式计算所给点上的函数近似值。例子:用一个三次多项式在区间[0:2*pi]内逼近函数sin(x)在给定区间内均匀选取20个采样点并计算采样点的函数值,然后利
2015-11-25 22:57:49 82335 1
原创 matlab、C++混合编程
Matlab中调用C/C++的程序、如何编写可供Matlab程序调用的C/C++程序:mex -setup找不到编译器,郁闷。。。
2015-11-25 20:38:45 745
原创 三态输出门
CMOS三态输出门三态输出门(Three-StateLogic,TS)是由普通门电路加上控制电路构成的。CMOS三态门的电路结构大体上有以下三种形式。(1)电路结构是在CMOS反相器上增加一个NMOS(T1)、一个PMOS(T4)和一个非门, •(2)在CMOS反相器上增加一 个控制管(T3)和一个或非门;或者在CM
2015-11-25 17:20:12 3194
原创 CMOS传输门
CMOS传输门是由一个PMOS和一个NMOS组成的,他们的栅极接出来作为控制端,分别接相位相反的控制电平。由基本的器件知识可以知道,当PMOS的栅极接高电平的时候,PMOS管截止,栅极接低电平的时候PMOS管导通;当NMOS的栅极接高电平的时候,NMOS管导通,栅极接低电平的时候NMOS管截止。因此当PMOS的栅极接低,NMOS的栅极接高电平时,传输门的输入和输出导通,此时就能实现电平的传输。
2015-11-25 16:55:52 17672 1
原创 extern关键字使用方法总结
extern在源文件A里定义的函数,其他源文件里是不能访问的。为了在源文件B里能调用这个函数,应该在B的头部加上一个外部声明:extern 函数原型;这样,在源文件B里也可以调用那个函数了。注意:A里是定义,B里是声明。一个函数只能也必须在一个源文件里被定义,但是可以在其他多个源文件里被声明。定义引起存储分配,是真正产生那个实体;而声明并不引起存储分配。例子:p
2015-11-25 15:47:57 726
原创 c结构体、c++结构体和类的区别
c结构体,就是数据的集合,只有成员变量,没有方法;c++结构体和c++类基本一样,可以有成员变量,有方法,唯一的区别就是结构体成员变量默认访问控制为public,类为private。c与c++结构体的区别:1、c中结构体不能为空,而c++中的结构体可以为空。在c++中若结构体为空,则其大小为12、c结构体中只能定义成员变量,而不能定义成员函数,而c++结构体则可以有成员变量
2015-11-25 15:37:15 698
原创 c++字符串
概念区分在c中,是没有string类型数据的。但是c语言里有这个头文件。区分string的含义:(1)如果string表示字符串型数据,那么c中是有字符串类型数据的(用char[]或者char *来声明定义)。但是没有string类型数据。而c中的这个头文件里声明的函数原型也是针对char数组的种种操作。(2)(c++中)string可以表示string类型。string是一种特殊
2015-11-25 14:31:25 583
原创 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-11-02 20:48:26 354
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人