摘要:
常见排序算法稳定性和复杂度分析快速简记以及转载分类: 算法 2012-02-07 22:18 399人阅读 评论(1) 收藏 举报算法mergeshellhttp://blogold.chinaunix.net/u3/94667/showart_2150464.html1.排序算法的稳定性分析:若待... 阅读全文
posted @ 2015-10-26 23:40
XYQ全哥
阅读(737)
评论(0)
推荐(0)
摘要:
C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。请看下面的... 阅读全文
posted @ 2015-10-26 23:39
XYQ全哥
阅读(2184)
评论(0)
推荐(0)
摘要:
【c++】必须在类初始化列表中初始化的几种情况1. 类成员为const类型2. 类成员为引用类型复制代码#include using namespace std;class A{ public: A(int &v) : i(v), p(v), j(v) {} void print_va... 阅读全文
posted @ 2015-10-26 23:38
XYQ全哥
阅读(3956)
评论(0)
推荐(1)
摘要:
C/C++中如何获取数组的长度?如何获取数组的长度2010-12-15 20:49C/C++中如何获取数组的长度? 收藏C、C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用sizeo... 阅读全文
posted @ 2015-10-26 23:37
XYQ全哥
阅读(447)
评论(0)
推荐(0)
摘要:
C++函数的默认参数指的是在函数声明或者定义时给形式参数指定默认值,从而在调用参数时可以少写参数,少掉的参数用默认值代替。LZ的Display()函数的代码看起来似乎是可以有s2和s3两个默认参数,那么此函数的声明写法就是void Display(string s1, string s2 = "",... 阅读全文
posted @ 2015-10-26 23:36
XYQ全哥
阅读(1530)
评论(0)
推荐(0)
摘要:
和普通函数一样,构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,即如果用户不指定实参值,编译系统就使形参取默认值。例9.3的问题也可以使用包含默认参数的构造函数来处理。【例9.4】将例9.3程序中的构造函数改用含默认值的参数,长、宽、高的默认值均为10。#include using n... 阅读全文
posted @ 2015-10-26 23:35
XYQ全哥
阅读(3140)
评论(0)
推荐(0)
摘要:
1、共同的打开文件方式: fin.open("test.txt",ios::binary) fout.open("test.txt",ios::binary) fboth.open("test.txt",ios::in|ios::out|ios::binary... 阅读全文
posted @ 2015-10-26 23:27
XYQ全哥
阅读(1418)
评论(0)
推荐(0)
摘要:
7.2.1 C++的输入输出流 ios:流基类(抽象类) istream:通用输入流类和其他输入流的基类 ostream:通用输出流类和其他输出类的基类 iostream:通用输入输出流类和其他输入输出流类的基类(以下的派生类对象有cin、cout、cerr、clog) ifstream:输入文件流 阅读全文
posted @ 2015-10-26 23:16
XYQ全哥
阅读(3292)
评论(0)
推荐(0)
摘要:
6.4 异常处理 程序中常见的错误分为两大类:编译时期的错误和运行时期的错误。 编译时期的错误比较简单容易发现:主要是语法错误,如关键字拼写错误、缺分号、括号不匹配等 运行时期的错误比较难发现,甚至是不可预料的:如算法出错、内存空间不足、角标越界、文件无法打... 阅读全文
posted @ 2015-10-26 23:03
XYQ全哥
阅读(678)
评论(0)
推荐(0)
摘要:
6.3 类模板和模板类 所谓类模板,实际上是建立一个通用类,其数据成员、成员函数的返回值类型和形参类型不具体指定,用一个虚拟的类型来代表。使用类模板定义对象时,系统会实参的类型来取代类模板中虚拟类型从而实现了不同类的功能。 定义一个类模板与定义函数模板的... 阅读全文
posted @ 2015-10-26 22:52
XYQ全哥
阅读(3659)
评论(0)
推荐(2)
摘要:
6.1 模板的概念C++允许用同一个函数定义函数,这些函数的参数个数和参数类型不同。例如求最大值的max函数, int max(int x,int y) { return (x>y)?x:y; } long max(long x,long y) { return (x>y)?x:... 阅读全文
posted @ 2015-10-26 22:45
XYQ全哥
阅读(916)
评论(0)
推荐(0)
摘要:
5.4.3 纯虚函数和抽象类 纯虚函数是一个在基类中说明的虚函数,它在该基类中没有定义,但是要求在派生类中根据需要对它进行定义,或仍然说明为纯虚函数。 声明纯虚函数的一般格式是: virtual 函数类型 函数名(参数表)=0; 纯虚函数的作用是:在基类中为其派生类保留一个函数的... 阅读全文
posted @ 2015-10-26 22:31
XYQ全哥
阅读(572)
评论(0)
推荐(0)
摘要:
5.4.2 虚函数详解 1.虚函数的定义 虚函数就是在基类中被关键字virtual说明,并在派生类重新定义的函数。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。 虚函数的定义是在基类中进行的,它是在基类中需要定义为虚函数的成员... 阅读全文
posted @ 2015-10-26 22:16
XYQ全哥
阅读(2172)
评论(0)
推荐(0)
摘要:
5.4虚函数5.4.1 虚函数的引入 //例5.19 虚函数的引例#includeusing namespace std;class MyBase{ //声明基类 public: MyBase(int x,int y) ... 阅读全文
posted @ 2015-10-26 22:12
XYQ全哥
阅读(303)
评论(0)
推荐(0)
摘要:
5.3 类型转换 5.3.1 系统预定义类型间的转换 1. 隐式转换: 例如: int x=5,y; y=3.5+x; //系统会自动先将int型的5转换为double型的5.0,在和3.5进行加法运算。 隐式类型转换的主要规则... 阅读全文
posted @ 2015-10-26 22:08
XYQ全哥
阅读(387)
评论(0)
推荐(0)
摘要:
5.2.5 "++"和"--"的重载 对于前缀方式++ob,可以用运算符函数重载为: ob.operator++() //成员函数重载 或 operator++(X &ob) //友元函数重载,其中ob为类X的对... 阅读全文
posted @ 2015-10-26 22:00
XYQ全哥
阅读(1656)
评论(0)
推荐(0)
摘要:
5.2.4 成员运算符重载函数和友元运算符重载函数的比较 (1)对双目运算符而言,成员运算符重载函数参数表中含有一个参数,而友元运算符重载函数参数表中有两个参数;对于单目运算符而言,成员运算符重载函数参数表中没有参数,而友元运算符重载函数参数表中有一个参数。(2)双目运算符一般可以被重载为... 阅读全文
posted @ 2015-10-26 21:50
XYQ全哥
阅读(737)
评论(0)
推荐(0)
摘要:
5.2.3 成员运算符重载函数 在C++中可以把运算符重载函数定义为某个类的成员函数,称之为成员运算符重载函数。 1. 定义成员运算符重载函数的语法形式 (1)在类的内部,定义成员运算符重载函数的格式如下: 函数类型 operator 运算符(形参表) { 函数体 }... 阅读全文
posted @ 2015-10-26 21:46
XYQ全哥
阅读(1470)
评论(0)
推荐(0)
摘要:
5.2.2 友元运算符重载函数运算符重载函数一般采用两种形式定义: 一是定义为它将要操作的类的成员函数(简称运算符重载函数); 二是定义为类的友元函数(简称为友元运算符重载函数)。 1.定义友元运算符重载函数的语法如下: 在类的内部: friend 函数类型 operator... 阅读全文
posted @ 2015-10-26 21:35
XYQ全哥
阅读(1380)
评论(0)
推荐(0)
摘要:
5.运算符重载5.1 在类外定义的运算符重载函数C++为运算符重载提供了一种方法,即在运行运算符重载时,必须定义一个运算符重载函数,其名字为operator,后随一个要重载的运算符。例如,要重载"+"号,应该写一个名字为operator的函数,其他的运算符也是如此... 阅读全文
posted @ 2015-10-26 21:24
XYQ全哥
阅读(2478)
评论(0)
推荐(0)
摘要:
4.5 基类与派生类对象之间的赋值兼容关系 在一定条件下,不同类型的数据之间可以进行类型转换,例如可以将整型数据赋给双精度型变量。 在赋值之前,先把整型数据转换为双精度型数据,然后再把它双精度型变量。这种不同类型之间的自动转换,称为赋值兼容。在基类和派生类对象之间也存在有赋值兼容关系,基类和派生类对 阅读全文
posted @ 2015-10-26 21:16
XYQ全哥
阅读(5000)
评论(0)
推荐(1)
摘要:
4.4.3 虚基类1.为什么要引入虚基类 如果一个类有多个直接基类,而这些直接基类又有一个共同的基类,则在最底层的派生类中会保留这个间接的共同基类数据成员的多分同名成员。在访问这些同名的成员时,必须在派生类对象后增加直接基类名,使其惟一地标识一个成员,以免产生二义性。 //例 4.15 虚基类的引例 阅读全文
posted @ 2015-10-26 21:10
XYQ全哥
阅读(843)
评论(0)
推荐(0)
摘要:
4.1 多重继承单继承或单基派生:派生类只有一个基类;多继承或多基派生:派生类有两个或两个以上的基类。4.4.1 多重继承派生类的声明 在C++中,声明具有两个以上的派生类与声明单机派生类的形式相似,只需将要继承的多个基类用逗号分分隔即可,... 阅读全文
posted @ 2015-10-26 20:58
XYQ全哥
阅读(762)
评论(0)
推荐(0)
摘要:
4.3 调整基类成员在派生类中的访问属性的其他方法 4.3.1 同名函数 在定义派生类的时候,C++语言允许在派生类中说明的成员与基类中的成员名字相同,也就是 说,派生类可以重新说明与基类成员同名的成员。如果在派生类中定义了与基类成员同名的 成员,则称派生... 阅读全文
posted @ 2015-10-26 20:47
XYQ全哥
阅读(1134)
评论(0)
推荐(0)
摘要:
4.2 派生类的构造函数和析构函数4.2.1 派生类构造函数和析构函数的执行顺序 通常情况下,当创建派生类对象时,首先执行基类的构造函数,随后再执行派生类的构造函数;当撤销派生类对象时,则先执行派生类的派生类的析构函数,随后再执行基类的析构函数。 //例4.5 派生类的构造函数和析构函的执行顺序 # 阅读全文
posted @ 2015-10-26 20:36
XYQ全哥
阅读(1211)
评论(0)
推荐(0)
摘要:
4.1 派生类的声明 继承实例如下: class Person{ //声明基类Person public: void print() { coutusing namespace std;class Base{ ... 阅读全文
posted @ 2015-10-26 20:30
XYQ全哥
阅读(911)
评论(0)
推荐(0)
摘要:
3.8 友元:友元函数和友元类友元函数 :既可以是不属于任何类的非成员函数,也可以是另一个类的成员函数,统称为友元函数。友元函数不是当前类的成员函数,而是独立于类的外部函数,但它可以访问该类所有的成员,包括私有成员、保护成员和公有成员。在类中声明友元函... 阅读全文
posted @ 2015-10-26 20:12
XYQ全哥
阅读(2510)
评论(0)
推荐(0)
摘要:
3.7.1 静态数据成员对象是类的一个实例,每个对象都具有自己的数据成员。例如,学生类张三或李四都具有自己的学号,姓名和平均成绩。在实际使用时,常常还需要一些其他的数据项,比如学生人数、总成绩、平均成绩。但是如果把这些数据项作为普通的数据成员来处理,将会产生错误。下面通过例子来说明: 例3.28 静 阅读全文
posted @ 2015-10-26 19:55
XYQ全哥
阅读(383)
评论(0)
推荐(0)
摘要:
3.5.1 使用对象作为函数参数,其方法与传递基本类型的变量相同//例3.21 使用对象作为函数参数#includeusing namespace std;class A{ public: A(int n) { t = n; } voi... 阅读全文
posted @ 2015-10-26 19:46
XYQ全哥
阅读(9431)
评论(0)
推荐(3)
摘要:
常类型:使用类型修饰符const说明的类型,常类型的变量或对象成员的值在程序运行期间是不可改变的。3.10.1 常引用 如果在说明引用时用const修饰,则被说明的引用为常引用。如果用常引用做形参,便不会产生对实参 的不希望的更改。常引用的说明形式如下: const 类型 &引用名; 例... 阅读全文
posted @ 2015-10-26 19:42
XYQ全哥
阅读(382)
评论(0)
推荐(0)
摘要:
3.6.1 对象赋值语句如同基本类型赋值语句一样,同类型的对象之间也可以进行赋值,即一个对象的值可以赋给另一个对象。这里所指的对象的赋值是指对其中的数据成员赋值,而不对成员函数赋值。例如:A和B是同一类的两个对象,那么下述对象赋值语句 B=A; 就能把对象A的数据成员的值逐位复制给对象... 阅读全文
posted @ 2015-10-26 19:33
XYQ全哥
阅读(7732)
评论(0)
推荐(1)
摘要:
在类中定义的数据成员一般都是基本数据类型或服复合数据类型。但是还可以根据需要使用 其他类的对象作为正在声明的数据成员。复杂的对象还可以有比较简单的对象一某种方式组合 而成,复杂对象和组成它的简单对象之间的关系是组合关系。 在一个类中内嵌另一个类的对象作为数据成员,称为类的组合。该内嵌对... 阅读全文
posted @ 2015-10-26 19:22
XYQ全哥
阅读(6052)
评论(0)
推荐(2)
摘要:
析构函数的特点: 1、析构函数与类名相同,但它前面必须加上波浪号~ 2、析构函数不返回任何值,在定义析构函数时,是不能说明它的类型的,甚至说明void类型也不能 3、析构函数没有参数,因此不能被重载。一个类可以有多个构造函数,但是只能有一个析构函数 4、撤销对象时,编译系统会自动调用析构函数//例... 阅读全文
posted @ 2015-10-26 19:17
XYQ全哥
阅读(911)
评论(1)
推荐(1)
摘要:
构造函数的重载的判断条件是:参数的个数或者类型不同,其他要保持一样举例说明:方式一:在类中声明重载构造函数,在类外定义//第一种方法: #includeusing namespace std;class Date{ public: Date(); //声明一个无参数的构造... 阅读全文
posted @ 2015-10-26 19:14
XYQ全哥
阅读(3563)
评论(0)
推荐(1)
摘要:
1、在声明类时,对数据成员的初始化工作一般在构造函数中用赋值语句进行。 例如:class Complex{ private: double real; double imag; public: Complex(double r,double i) ... 阅读全文
posted @ 2015-10-26 19:07
XYQ全哥
阅读(515)
评论(0)
推荐(0)
摘要:
注意:如果类中用户没有定义构造函数,系统会自动提供一个函数体为空的默认构造函数。 但是,只要类中定义了一个构造函数(不一定无参构造函数),系统将不再给它提供 默认的构造函数。因为,默认的构造函数被类中的提供的构造函数给覆盖了。然而, 对象一建立,就需要初始化,所以,用户在程序中此时... 阅读全文
posted @ 2015-10-26 18:02
XYQ全哥
阅读(579)
评论(0)
推荐(0)
摘要:
(一)类与对象的关系: c++把类的变量叫做类的对象,对象也称类的实例 (二)对象的定义: 1、在声明类的同时,直接定义对象,即在声明类的右花括号“}”后,直接写出 属于该类的对象名表。例如:class Point{ public: void... 阅读全文
posted @ 2015-10-26 17:56
XYQ全哥
阅读(765)
评论(0)
推荐(0)
摘要:
对象的初始化和构造函数 构造函数:是一种特殊的成员函数,它主要用于为对象分配空间,进行初始化。构造函数 的名字必须与类名相同,它不要用户来调用,而是在建立对象时自动执行的 形式一: 类名 对象名(实参表); 例如:class Complex{ priva... 阅读全文
posted @ 2015-10-26 17:53
XYQ全哥
阅读(527)
评论(0)
推荐(0)
摘要:
1、成员函数的第一种定义方式:在类声明中只给出成员函数的原型,而将成员函数的定义 放在类的外部。 返回值类型 类名::成员函数名(参数表) { 函数体 } class Point{ public: void setpoint(int,int); ... 阅读全文
posted @ 2015-10-26 17:48
XYQ全哥
阅读(1810)
评论(0)
推荐(0)
摘要:
类的创建#include#includeusing namespace std;class Complex //声明一个名为Complex的类 { private: //声明以下部分为私有的 double real; ... 阅读全文
posted @ 2015-10-26 17:43
XYQ全哥
阅读(396)
评论(0)
推荐(0)
摘要:
this指针 this关键字:表示本类中的对象成员,可以通过this指针访问当前类的成员//举例//例 3.18 隐藏this指针的引例 #includeusing namespace std;class A{ public: A(int x1) { x =... 阅读全文
posted @ 2015-10-26 17:37
XYQ全哥
阅读(305)
评论(0)
推荐(0)
摘要:
String类 1、使用String类必须在程序的开始包括头文件string,即要有如下语句:#include<string> 2、string类字符串对象的使用方法与其他对象一样string,也必须先定义才可以使用,其 定义格式如下: string 对象1,对象2,..........; 例如: 阅读全文
posted @ 2015-10-26 17:33
XYQ全哥
阅读(287)
评论(0)
推荐(0)
摘要:
对象指针概念:每一个对象在初始化后都会在内存中占有一定的空间。因此,既可以通过对象名访问, 也可以通过一个对象地址来访问一个对象。对象指针就是用于存放对象地址的变量。 声明对象指针的一般语法格式为:类名*对象指针名指针访问模式:1、用指针访问单个对象成员 2、... 阅读全文
posted @ 2015-10-26 17:31
XYQ全哥
阅读(2017)
评论(0)
推荐(1)
摘要:
对象数组 对象数组:每一个数组元素都是对象的数组,也就是说,若一个类有若干个对象,我们把这一系列的对象用一个数组来存放。对应数组元素是对象,不仅具有的数据成员,而且还有函数成员。 @定义一个一维数组的格式如: 类名 数组名[下标表达式]; @使用对象数组时只能访问单个数组元素,其一般格式如: 数组... 阅读全文
posted @ 2015-10-26 17:28
XYQ全哥
阅读(16493)
评论(0)
推荐(1)
摘要:
1.基本的输入输出,使用cin>>输入输入、使用coutusing namespace std;int main(){ int a,b,d,min; cout>a>>b; coutb? b:a); for(d=2;dusing namespace std;int &f(int &i) ... 阅读全文
posted @ 2015-10-26 16:18
XYQ全哥
阅读(338)
评论(0)
推荐(1)
摘要:
swift:高级运算符http://www.cocoachina.com/ios/20140612/8794.html除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和Objective-C中的位运算符和移位运算。不同于C语言中的数值计算,Swift的数值计算默认是不可溢... 阅读全文
posted @ 2015-10-26 15:23
XYQ全哥
阅读(1047)
评论(0)
推荐(0)
摘要:
Swift自动引用计数:ARC 原文链接:https://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/chapter2/16_Automatic_Reference_Counting.html Swift使用自动引用计数 阅读全文
posted @ 2015-10-26 11:07
XYQ全哥
阅读(311)
评论(0)
推荐(0)
浙公网安备 33010602011771号