孙鑫c++笔记系列(一)学习c++

来源:互联网 发布:淘宝装修模板复制 编辑:程序博客网 时间:2024/06/06 12:26

这篇博客为个人笔记,没有任何参考价值,只是为了方便自己日后复习,所写代码比较杂乱,甚至有错误的地方,如果你想获取什么知识,防止误导,请移步

如果有描述不准确的地方,欢迎指导


 #include<iostream.h>class Animal{public:Animal(int height,int weight)//增加一个构造函数{cout<<"animal consturct"<<endl;//先构造父类,再构造子 类}~Animal()  //析构的时候是子类先析构,然后才是父类{          }void eat(){cout<<"animal eat"<<endl;}protected://保护变量,对于子类是可以访问的,子类可以继承,保护在外部是不可以访问的void sleep(){cout<<"animal sleep"<<endl;}private://这是私有的,只能在自己的内部访问,哪怕是自己的子类也不能访问void breathe(){Animal::breathe();//作用域标志符,继承父类的呼吸cout<<"anmimal breathe"<<endl;}};class Fish:public Animal// c++提供继承这种特性,我们想让鱼也继承动物的特性                         // 按照public继承 Fish 是子类或者派生类 Animal是父类{public:    Fish():Animal(400,200)//子类中向基类传递函数{cout<<"fish construct"<<endl;}// virtualvoid breathe()=0;//纯需函数,可以让类有个名称,让派生类来使用                        //比如将来不确定这个行为,但是这个行为肯定有,有派生类具体来实现virtualvoid breathe() //函数的覆盖发生在父类和子类之间,函数重载是发生在一个类之间的           //继承一个类,有的行为不需要了,   //virtual虚函数,会依据对象的类型来确认调用哪种函数,需要指正   //基函数前加virtual函数,如果子类有,调用子类;如果子类没有,调用父类{cout<<"fish bubble"<<endl;}};void fn(Animal *pAn){pAn->breathe();}int change(int &a,int &b){}void main(){//Animal an(2,3);//an.eat();Fish fh;Animal *pAnfh(pAn)   //c++中的多态性:如果没有vitual 返回父类的指针(早期绑定)          // 如果有vitualc++采用迟绑定的的技术int a = 6;int &b=a; //b是a引用的一个别名,必须在引用前就初始化,不需要内存地址;          //而指针变量本身是需要内存来访的b=5;int c = 7;b = c;//将c赋给b,此时a也为aint x=3;int y=4;change(x,y)//fh.sleep();}