![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
lyhani82475
这个作者很懒,什么都没留下…
展开
-
定义一个哺乳动物Mammal类,再由此派生出狗Dog类,二者都定义 Speak()成员函数,基类中定义为虚函数,定义一个Dog类的对象,调用Speak函数,观察运行结果
class Mammal{public:Mammal(){coutvirtual void speak(){}virtual ~Mammal(){cout}};class Dog:public Mammal{public:Dog(){coutvirtual void speak(){cout}~Dog(){co原创 2017-07-28 16:26:49 · 18349 阅读 · 2 评论 -
构造函数与析构函数
构造函数 特点: 1.在创建对象时编译器自动调用构造函数 2.无返回值类型(实际上构造函数有返回值,返回的就是构造函数所创建的对象),函数名与类名相同。规则:类名(参数列表),例:Test(int d){} 3.构造函数也可在类外实现,规则:类名::函数名(参数列表),例:Test::Test(int d){} 4.每个对象在其生命周期内只调用一次构造函数 ...原创 2018-03-09 12:05:07 · 231 阅读 · 0 评论 -
构造函数的三大作用
1.构造对象 我们可以通过构造函数来创建一个对象2.实例化对象 初始化对象的数据成员,系统在自动调用构造函数时,通过构造函数可以实现对数据成员的初始化3.类型转化class Test{public: Test(int d=0) { data=d; }private: int data;};v...原创 2018-03-09 15:27:57 · 2650 阅读 · 1 评论 -
c++拷贝构造函数 && 赋值语句
拷贝构造函数拷贝构造函数的定义: 同一个类的对象在内存中有完全相同的结构,如果作为一个整体进行复制或拷贝是完全可行的(以为他们具有同样的结构)。这个拷贝的过程只需要拷贝数据成员,而函数成员是公用的(只有一份拷贝)。因此,在建立对象时咳以用同类的另一个对象来初始化对象。这时所用的构造函数成为拷贝构造拷贝构造函数的特点: 类名与函数名相同 参数是自身类型的引...原创 2018-03-17 11:41:02 · 1432 阅读 · 0 评论 -
c++中的引用
引用的定义: 又称之为别名,引用不是定义一个新的变量,而是给一个已经定义的变量重新起一个名字。即c++系统不为引用类型变量分配内存空间。引用的格式: 类型 &引用变量名=已定义过的变量名;#include<iostream>using namespace std;void main(){ int a; int &...原创 2018-03-17 18:24:25 · 164 阅读 · 0 评论 -
通过引用优化c++程序,提高程序效率
引用是一个好东西,用不好就是大麻烦返回值为&class Test{public: Test(int data=0) { this->data=data; cout<<"构造函数"<<endl; } Test(const Test &t) { data...原创 2018-03-18 10:41:32 · 531 阅读 · 0 评论 -
this指针及const对指针的封锁
this指针 在c++中,对象在调用成员方法时,在函数的参数列表中会隐含一个this指针,用来保存当前对象的地址,以此来区分是哪个对象调用该方法(由于在用同一类定义对象时,各个对象之间只有数据成员不一样,需单独存储,成员方法都是一样的,所以所有对象就只保存一份成员方法,为了区分是哪个对象调用的方法,所以需要this指针来保留当前对象的地址)#include<iostream...原创 2018-03-05 18:58:26 · 190 阅读 · 0 评论 -
重载、覆盖(重写)、隐藏三者的区别
重载: 同一个类中,函数名相同,参数列表不同(参数类型不同/参数个数不同)的函数就构成了重载隐藏: 具有继承关系的两个类,子类重新编写了分类的方法(此时只需要函数名相同即可,参数列表可以相同也可以不同),当参数不同时,父类方法可加关键字virtual,也可不加。参数相同时,加virtual就变成了覆盖。覆盖(重写): 具有继承关系的两个类,子类重新编写了父类的...原创 2018-03-31 08:54:44 · 374 阅读 · 0 评论 -
C++的三大特性:封装、继承、多态,以及多态的具体实现
封装: 将具体事物的特性以及其相应的行为抽象出来,形成类的属性和方法,并赋予其不同的访问权限。继承: 新类(子类/派生类)可以在无需重新编写原来的类的情况下对已有类(父类/基类)的功能进行扩展多态: 是指一个事物的多种形态 实现方式: ①、(类多态)覆盖:子类重新定义父类的虚函数 ②、(函数多态)重载:函数的重载以及运算符的重载注:其实,...原创 2018-03-31 09:50:42 · 295 阅读 · 0 评论