开始学习C++几天了,之前没有记录,从现在开始,记录一下学习过程

复习与回忆:

1.引用与指针

  共同优点:只用引用与指针,在传递参数时,可以减少拷贝,减少内存消耗,提高效率

  指针优点:指针比引用更强大,所有引用能做的事,指针都能做,

  指针缺点:危险,指针可以为空,指针指向地址,同一地址可以被多个指针指向。A,B同时指向一个地址,A操作了该地址,B再操作可能出错,比如释放

  引用优点:方便操作,引用就是别名,当成变量名用。

  引用缺点:应该不算是缺点,引用因为是别名,可以改变引用的变量的值

  使用引用时,务必知道其是引用,务必明确其引用的是什么。

  const指针:

  const int* one = new int (5);  

  one = new int(10); //one可以指向一个新的地址,但是不可以改变改地址内的值

  *one = 8;//错误

  int* const two = new int;

  *two = 10; //two指向的值可以改变,但是不能改变two指向的地址

  two = NULL; //错误

  //const int* const three = 0;

2.类与对象

  私有与共有

  类中的方法与变量,默认都是私有private,需要增加public变为公有.

 

  const方法,void func()const,,,,不改变类中成员的方法,建议都加上const

    const实例化的对象,只能调用const方法 (有一篇文章详细讲解过,找不到链接了)

  构造函数,初始化变量

  感觉有个链接讲的比较好:https://blog.csdn.net/weixin_45031801/article/details/134170844

 

2024.1.16学习

  继承与派生

  动物为一个类animal,狗为一个类,dog,狗是动物,狗继承于动物。animal是dog的基类,dog是animal的派生类

  写法

class animal

{

}

class dog:public  animal

{

}

  基类animal前面的类型public作用,可以查看:https://www.cnblogs.com/BeyondAnyTime/archive/2012/05/23/2514964.html

  构造函数的继承,可以查看:https://blog.csdn.net/open_gis/article/details/11026437

  基类有带参数与不带参数的构造函数,如果派生类的构造函数没有传值给基类,那么默认调用基类的默认构造函数(不带参数的)

  重写与覆盖

  重载的概念在这里就不讲了,重写(覆盖) 与隐藏可以查看:https://blog.csdn.net/t567g123/article/details/68065856

  以上链接,我还没有学习虚函数,后面再来复习,目前看起来,派生类重写必然会隐藏基类的同名函数,需要注意由于隐藏函数有const,如果重写函数忘记加const,而基类有const的情况。

  如何调用基类的方法:object.base::basefunc()

 

明日学习虚函数

 

 

遗留问题

  1.inline函数,是作为运行时替换,define是编译时替换,inline有点可以检查参数,define不行。。。。。define可以写循环或者判断等语句,inline不写(不建议?),只写简单语句,,,那是不是完全可以不用inline函数

  2.类中定义的方法,都是inline方法,类中声明,类外定义,在没有特定指明inline时,不是inline方法?

  3.多层派生类,调用基类函数的情况是怎么样的?