开始学习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.多层派生类,调用基类函数的情况是怎么样的?