c++
文章平均质量分 69
Winge_Fish
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++面向对象(六)继承的static关键字
首先需要理解 父类中定义的static(静态)成员,将被所有子类共享 根据静态成员自身的访问特性和子类的继承方式,在类层次体系中具有不同的访问性质(遵守 子类的访问控制) 子类中访问静态成员,原创 2015-07-26 11:19:08 · 475 阅读 · 0 评论 -
C++面向对象编程(五)之 运算符重载
运算符重载: 用户根据自己的需要对C++以提供的运算符进行重载,赋予新的含义,使之一名多用。 运算符重载的本质是,函数调用。 重载运算符的函数一般格式如下: 类型 类名:: operator 运算符名称(形参列表) // 这里 应该把(operator 运算符名称) 看成是函数名 说明: 一个运算符被重载后,原有的意义没有失去,只是定义了相对一特定原创 2015-07-24 06:57:20 · 871 阅读 · 0 评论 -
C++面向对象编程(二)之 深拷贝和浅拷贝
默认拷贝构造函数可以完成对象的数据成员值简单的复制。对象的数据资源是有指针指示的堆时,默认拷贝构造函数仅作指针值复制。 而浅拷贝,在某些情况下,例如,当类的数据成员中有指针类型时,就会带来数据安全方面的隐患, 我们就需要定义一个特定的拷贝构造函数,该拷贝构造函数不仅可以实现原对象和新对象之间数据成员 的拷贝,而且可以为新的对象分配单独的内存资源,这就是 深拷贝构造函数。原创 2015-07-23 03:53:27 · 706 阅读 · 0 评论 -
C++面向对象编程(三) 常成员函数 (带const修饰的类成员函数)
声明:函数名(参数表)const //常成员函数 说明: const是函数类型的一部分,在实现部分也要带该关键字。 常成员函数不能修改类的成员变量。因为const修饰就是this指针所指向的内存空间,不能被修改。 如 #include using namespace std; class Test { public: Test(int a,原创 2015-07-23 04:28:31 · 1101 阅读 · 0 评论 -
C++面向对象编程(一)之类和对象
本文主要学习的是C++编译器管理类和对象的方法,对类对象的生命周期的管理,对象创建, 使用,销毁等 C++面向对象的模型,C++面向对象多态原理。最后学会利用C++面向对象的三大特性,封装,继承,多态 进行面向抽象类(接口)编程,把C++语言作为工具,实现我们需要的功能。 封装:将客官事物抽象成类,每个类对自身数据和方法进行保护(public,private,prote原创 2015-07-21 23:15:47 · 604 阅读 · 0 评论 -
C++面向对象编程(四)友元函数和友元类
友元函数: 声明:friend 返回类型 函数名(形参表) { ...... //函数体 } 说明: 友元函数可以是另一个类的成员函数,也可以是不属于任何类的一般的函数。 友元是一个普通的函数,它不是本类的成员函数。 private、public、protected 访问权限与友元函数声明无关。 友元也可以是整个类。称为友元类。 格式: class A { ...原创 2015-07-23 07:01:37 · 709 阅读 · 0 评论 -
C++对C的函数扩展
1 inline 内联函数 必须inline int myfunc(int a, int b)和函数体的实现,写在一块。 c++编译器直接将函数体插入在函数调用的地方, 内联函数省去了普通函数调用时的压栈,跳转,返回等开销。 现代的一些C++编译器能够进行编译优化,即使不写inline 关键字 定义函数,也可以进行优化。 2原创 2015-07-21 23:11:18 · 506 阅读 · 0 评论 -
C++中的引用
引用就是某个目标变量的别名,对引用的操作与对变量的直接操作效果完全相同。 引用的声明方法:类型标识符 &引用名=目标变量名; 如下:定义引用ra,它是变量a的引用,即别名。 int a; int &ra=a; 1) 声明一个引用,必须进行初始化。 2) 引用声明完毕后,相当于目标变量有两个名称即该目标原名称和引用名,且不能再把该原创 2015-07-21 16:33:26 · 466 阅读 · 0 评论 -
C和C++中的const区别
合理的利用const 有以下优点: 1: 指针做函数参数,可以有效提高代码的可读性,减少bug 2:清楚分清参数的输入和输出特性。 而C语言中的const,并不是真正的const,可以通过指针,间接修改const变量的值 例如: const int a = 10; int *p = NULL; p = (int*)&a; *p = 20;//间接赋值 printf("a= %d原创 2015-07-21 15:58:22 · 496 阅读 · 0 评论 -
C++ 对C语言的增强
首先,C++是以C语言为基础的,并且完全兼容C语言的特性。 学习C++语言,对于从来没有学习过面向对象的程序员来说,在学习C++语言时候 ,着重点学习C++语言面向对象的三大特性,这也是其他面向对象语言的三大特性,原理都一样,只是代码实现不同而已。 C++面向对象的三大特性 封装, 继承, 多态 1 namespace 命名空间 C中的命名空间原创 2015-07-21 04:55:39 · 587 阅读 · 0 评论 -
C++面向对象编程(七) 多态的详解
多态的概念: 多态性:是指具有不同功能的函数可以用同一函数名,即系统能够在运行时, 能够根据其类型确定调用哪个重载的成员函数。 面向对象中是这样表述多态性的:向不同的对象发送同一个消息,不同的对象在接收时产生不同的行为(即不同的实现)。 其实生活中,到处都是多态的例子。例如,学校校长向社会发布一个消息:9月1日新学年开学。不同的对象就会作出不同的响应:学生要准备好课本准时到校上课;家长要筹原创 2015-07-27 09:38:40 · 862 阅读 · 0 评论 -
C++面向对象编程(八)重载和重写
函数重载说明: 必须在同一个类中进行。 子类无法重载父类的函数,父类同名函数将被覆盖 重载是在编译期间根据参数类型和个数决定函数调用 函数重写说明: 必须发生于父类和子类之间 并且父类与子类中的函数必须有完全相同的原型 使用virtual声明之后能够产生多态(如果不使用virtual,属于普通重定义) 多态是运行期间根据具体对象的类型决定函数调用原创 2015-07-28 07:12:26 · 452 阅读 · 0 评论 -
C语言中的函数指针
函数指针用于指向一个函数 函数名是函数体的入口地址 //函数指针语法梳理 //1 如何定义一个函数类型 //2 如何定义一个函数指针类型 //3 如何定义一个 函数指针 (指向一个函数的入口地址) int add(int a, int b) { printf("func add ....\n"); return a +b; } void main() { add(1, 2); //原创 2015-07-28 15:12:12 · 677 阅读 · 0 评论 -
C++面向对象编程(九)抽象类
纯虚函数 纯虚函数说明形式: virtual 类型 函数名(参数表) = 0; 一个函数含有纯虚函数的基类称为抽象类。 纯虚函数为各派生类提供一个公共界面(接口的封装和设计,软件的模块功能划分) #include using namespace std; class Figure { public: virtual void getArea() = 0原创 2015-07-28 12:17:55 · 862 阅读 · 0 评论 -
C++面向对象编程(五)同名成员变量和同名函数
首先需要理解: 成员变量同名覆盖:子类仅仅是继承来的那个成员变量,而并不改变原来父类中的变量。成员方法同名覆盖:子类对父类的成员方法覆盖,必须函数名,函数参数,函数返回值 完全一致。在子类中通过作用域分辨符::进行同名成员区分(在子类中使用父类的同名成员,必须显式地使用类名限定符) #include using namespace std; class A { public: i原创 2015-07-26 06:22:18 · 2285 阅读 · 0 评论 -
C++面向对象编程(六) 继承
首先,类之间的关系有三种: has-A (包含关系),即:一个类中的数据成员是另一种以经定义的类对象。 use-A (组合关系) , 即:一个类中部分地使用另一个类,通过类之间成员函数的相互联系, 定义友元成员函数或对象参数传递实现。 is-A (继承关系)。关系具体传递性,但不具有对称性。 类继承关系的语法形式: class 派生类名 : 基类名表原创 2015-07-25 07:34:26 · 639 阅读 · 0 评论
分享