C++
梦想与坚持
勤能补拙是良训,每个人生来都不是优秀的。
展开
-
C++语言笔记系列之六——函数的重载、函数缺省参数
1.函数的重载(1)在同一个C++程序中出现多个同名函数。(2)函数重载的条件:重载函数有不同的形参类型表;重载函数有不同的参数个数。这两个条件满足一个即可:但是在函数的调用的时候会存在隐形的变量类型的提升:字符型->整型、float型->double型在判定是否满足重载的时候一定要先将类型提升考虑到,例如:int abs(int);int abs(char);这两原创 2014-02-24 22:00:54 · 1845 阅读 · 0 评论 -
C++语言笔记系列之八——构造函数
1.构造函数作用:创建对象的时候,由系统自动完成对象的初始化工作,每创建一个对象时,系统将自动调用该对象的构造函数。一个对象若未设定构造函数,则系统会自动添加一个无参无操作的构造函数,每个对象完成创建时必须调用构造函数。2.构造函数的表示(1)构造函数的函数名与其类名同名。(2)构造函数是类的成员函数,访问权限一般被设置为public。(3)构造函数无返回值类型。3.构原创 2014-02-25 16:03:06 · 1166 阅读 · 0 评论 -
C++语言笔记系列之十四——继承后的访问权限
1.析构函数不继承;派生类对象在析构时,基类析构函数的调用顺序与构造函数相反。注:派生类对象建立时要调用基类构造函数,派生类对象删除时要调用基类析构,顺序与构造函数严格相反。2.例子example 1#include #include class Point{public: Point(double a, double b, doule c)原创 2014-07-01 21:40:17 · 951 阅读 · 0 评论 -
C++语言笔记系列之二十——模版
1.任意输入两个数x和y,输出最大值max。int max(int x, int y){return x>y?x:y;}2.函数模版(1)用一种或者多种通用类型去表示函数——函数模版。(2)函数模版由于没有具体的数据类型,所以函数模版不可运行。(3)作用:模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。模版可以分原创 2014-07-07 21:56:09 · 905 阅读 · 0 评论 -
C++语言笔记系列之九——析构函数
1.析构函数(1)作用:用来释放一个对象,在对象删除前用来做一些清理工作。(2)特点:析构函数是类的特殊函数,函数体可以写在类内,也可以写在类外。析构函数的函数名和类名相同,但是在析构函数之前加上了“~”。2.析构函数需要注意的几个知识点(1)析构函数无形参,无返回值,不可以随意调用且不可重载。从这里可以看出,析构函数和构造函数的区别主要在于形参和重载这两方面。(2)只原创 2014-02-25 20:11:21 · 1341 阅读 · 0 评论 -
C++语言笔记系列之十六——赋值兼容规则&多继承的二义性
1.赋值兼容规则(1)派生类对象可以给基类对象赋值,这种情况下派生类对象将从基类继承的成员的值赋值给一个基类对象;但是不允许将一个基类的对象赋值给一个派生类。(2)可以将派生类对象的地址赋给基类指针,使基类指针指向派生类对象,通过基类指针引用成员时只可以引用派生类从基类继承而来的成员,而不允许引用派生类的新成员。(3)引用与指针相同。2.多继承(1)一个派生类从两个以上的基类中原创 2014-07-04 20:25:17 · 1890 阅读 · 0 评论 -
C++语言笔记系列之十五——派生类、基类、子对象的构造和析构函数调用关系
例子example 1注:若一个基类同时派生出两个派生类,即两个派生类从同一个基类继承,那么系统将为每一个简历副本,每个派生类独立地使用自己的基类副本(比如基类中有属于自己类的静态变量等)。#include class Person{public: person() {cout ~person() {cout};class Student:p原创 2014-07-01 22:41:49 · 1164 阅读 · 0 评论 -
C++语言笔记系列之一——const修饰符
1.输入输出流coutcin>>a;2.int x = 6;系统为x分配单元#define x6 系统不为x分配单元,x只是6的符号3.const修饰符(1)变量的const修饰const 基本数据类型 变量名= 值;const int x = 3;等价于 #define x3这句话执行完成之后系统不会为x分配单元,此处的x不是变量。const int x;//错误语句原创 2014-01-03 21:48:09 · 737 阅读 · 0 评论 -
C++语言笔记系列之二——new和delete
1.new关键字分配单元(1)必须定义一个纸箱该单元的指针。(2)指针变量 = new 数据类型。(3)new关键字分配的单元当程序结束后仍然存在。int *p = new int;int *p = new int[5];第二句话的解释:指针变量指向数组的首单元,数组元素表示为p[i],p的指向不能动,动了之后数组的首地址丢失。2.delete关键字释放动态定义的单元(1)dele原创 2014-01-03 21:48:11 · 678 阅读 · 0 评论 -
C++语言笔记系列之十七——虚基类
1.虚基类考虑这样一种情况:当某个类的部分或者全部直接基类是另一个共同基类派生而来,这些直接基类从上一级基类继承而来的成员就一定拥有相同的名称,这样就会产生二义性问题。解决办法:当派生类和直接基类产生了二义性问题-->加类的作用域。 当派生类和间接基类产生了二义性问题-->虚基类。2.虚基类的说明:class 派生类名:virtual 访问权限 基类名{派原创 2014-07-04 22:01:09 · 1231 阅读 · 0 评论 -
C++语言笔记系列之五——引用(&)和this指针详解
1.this指针(1)this指针是一个类所隐含的指针,一个类(注意不是对象)只有一个this指针,this指针是该类的所有对象所共享的。(2)当通过一个对象访问该对象的成员时,默认this指针指向该对象。例如:class Location{public: int x; int y; void Init(int a, int b);};原创 2014-02-24 10:05:18 · 2172 阅读 · 0 评论 -
C++语言笔记系列之十一——友元函数与拷贝构造函数
1.友元函数(1)友元函数是定义在一个类外的普通函数。友元函数和普通函数的定义一样;在类内必须将该普通函数声明为友元。(2)友元函数不是成员函数。不能通过对象来调用,而是直接调用;友元函数可以访问类的公有、受保护以及私有成员,但是必须通过对象、对象指针或者对象引用来访问。2.友元函数的声明friend 返回值类型 函数名(参数表);在类中只需要将这个声明放置在公有部分即原创 2014-06-28 21:24:22 · 1105 阅读 · 0 评论 -
C++语言笔记系列之十三——派生类构造函数的调用
1.派生类构造函数的调用(1)一个基类的所有数据成员均被派生类继承。创建一个派生类对象时,系统在为派生类对象分配单元时一定要为其基类数据成员分配子空间。(2)一个派生类对象在创建时不仅要调用派生类构造函数,而且要调用基类构造函数。派生类中的数据成员在派生类中构造。基类中的数据成员在基类中构造。原因:A.构造函数不继承。B.派生类的构造函数必须通过调用基类的构造函数完成基原创 2014-06-29 10:16:07 · 1112 阅读 · 0 评论 -
C++语言笔记系列之十二——C++的继承
C++的继承1.继承方式public(公有继承)派生类中的成员可以访问基类的public成员和protected成员,但不能访问基类的private成员。派生类的对象只能访问基类的public成员。protected(保护继承),private(私有继承)派生类中的成员可以访问基类的public成员和protected成员,但不能访问基类的private成员。派原创 2014-06-29 09:36:11 · 1004 阅读 · 0 评论 -
C++语言笔记系列之七——变量的作用域和使用方法
1.类的作用域类名::数据成员类名::成员函数2.区分局部变量、全局变量和类中的数据成员局部变量:在一个函数内定义的变量,作用域是在函数体内生效,在函数内直接使用。全局变量:在函数外和类体外定义的变量,作用域是从定义点一直到程序结束。注意:全局变量只可以在类外生效而不能在类内生效。类的数据成员:在类内定义,在类内生效。3.全局变量和局部变量同名在同一个函数内,局原创 2014-02-25 09:39:16 · 1638 阅读 · 0 评论 -
C++语言笔记系列之十——静态成员
1.静态成员(1)由关键字static修饰静态变量定义语句在编译阶段就执行,运行过程中不再执行。(2)分类:静态数据成员、静态成员函数。(3)静态成员时类的所有对象共享的成员,而不是某一个对象的成员。2.静态成员的使用(1)在定义说明前加上static关键字。例如:static int x;(2)静态数据成员必须进行初始化,并且初始化必须在类外完成。(3)静态数原创 2014-06-24 23:24:35 · 947 阅读 · 0 评论 -
C++语言笔记系列之十八——虚函数(1)
1.C++中的多态(1)多态性:同一个函数的调用可以进行不同的操作,函数重载是实现多态的一种手段。(2)联编:在编译阶段进行联接,即是在编译阶段将一个函数的调用点和函数的定义点联接起来。A.静态联编:在编译阶段就完成的函数联编——函数重载。B.动态联编:在程序的运行阶段由系统自动选择具体的函数——虚函数。注:C++的多态主要指的就是动态联编。2.虚函数(1)虚函数是在函原创 2014-07-05 16:05:51 · 989 阅读 · 0 评论 -
C++语言笔记系列之十九——虚函数(2)
1.构造函数和析构函数中调用虚函数(1)采用静态编译。(2)在编译阶段自动联接自己类中的函数或基类中的函数,不在派生类中重定义一个函数。注:构造函数和析构函数中调用的虚函数,派生类都不一定存在的情况下,只能去调用基类或者自身的函数。example 1#include class A{public: A() {} virtual void原创 2014-07-06 11:31:38 · 966 阅读 · 0 评论 -
C++语言笔记系列之四——类的成员函数、对象
1.类的成员函数的实现类的成员函数可以在类内实现,但成员函数的函数体不要过于复杂,且尽量少使用循环语句,switch语句。注:类内实现的成员函数,也称为内联函数。类的成员函数可以在类外实现,在类外实现成员函数时,必须加类的作用域。例如:数据类型 类名::函数名(形参) { 函数体 }注:在类外实现的成员函数,在类内必须进行声明。例如:原创 2014-02-20 16:51:37 · 1082 阅读 · 0 评论 -
C++语言笔记系列之三——类的定义以及private、public、protected访问权限
1.类的定义class 类名{private:私有数据成员和成员函数protected:受保护的数据成员和成员函数public:公有成员和成员函数};2.访问权限public:可以被类外任何程序段访问,作为类被外部访问的接口。private:只能够被类内部的公有成员和友元类成员访问,其他类的成员函数、派生类的成员函数、该类的对象均不可以访问。pr原创 2014-02-17 17:05:56 · 2730 阅读 · 0 评论