- 博客(9)
- 收藏
- 关注
原创 C++学习笔记(第九天)
所以类模板在使用的时候需要先实例化为模板类,再实例化为模板类对象。//在函数模板隐式实例化的时候,不会对函数的形参进行隐式转换去匹配模板的类型,而是会直接按照实参的类型来匹配函数模板的模板形参表中的参数的类型。//在函数模板隐式实例化的时候,不会对函数的形参进行隐式转换去匹配模板的类型,而是会直接按照实参的类型来匹配函数模板的模板形参表中的参数的类型。//在函数模板隐式实例化的时候,不会对函数的形参进行隐式转换去匹配模板的类型,而是会直接按照实参的类型来匹配函数模板的模板形参表中的参数的类型。
2024-04-26 18:04:06
259
1
原创 C++学习笔记(第七天)
f. 类中的虚函数仅对派生类中重新实现的函数起作用,对其他函数没有影响(虚函数的机制是通过在对象的起始位置增加一个虚表指针,该指针指向虚函数表,在虚函数表中存储的是当前类型所有虚函数的入口地址) -- 虚函数是动态绑定的,而普通函数是静态绑定的。d. 异常会向上进行传递(在函数中发生的异常如果在函数内部没有处理这该异常会传递到函数调用的位置), 如果到程序的最外层的catch中有不能匹配的异常(程序中发生的异常不能被捕获),系统会自动的调用terminate来终止程序的执行。
2024-04-26 18:03:03
406
1
原创 C++学习笔记(第六天)
派生类继承基类的时候同样的会继承基类的虚表指针,这个指针指向派生类对象的虚函数表,在派生类的虚函数表中存储的是派生类对象的虚函数的入口地址(如果在派生类中没有重新实现那么虚函数表中的入口地址就是从基类继承的虚函数的入口地址;派生类中不是从基类继承的虚函数在虚函数表中的位置是所有继承的虚函数的后面。从程序运行结果可以看出,基类指针指向派生类对象的时候得到的是派生类对象中的那个基类对象,通过这个指针调用的方法是基类对象中的方法(从基类继承的版本),不能调用指针所指向的那个实际对象自己实现的方法。
2024-04-26 18:02:24
405
1
原创 C++学习笔记(第五天)
在实现过程中,首先把指定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参,然后根据实参的类型来确定需要调用的函数,这个过程是在编译过程中完成的。对于C++的运算符作用在用户自定义类型上确定其运算规则: 在自定义类型,定义对于该类型对象参与具体的运算的时候的运算操作模式,使得该类的对象不必要通过成员方法而直接使用运算符就可以按照设定的操作模式来进行运算。注意: 前缀运算符参加运算的是当前对象自己,而后缀运算符参加运算的是值等于当前变量的一个临时对象(以对象的值参加运算的)
2024-04-26 18:01:29
318
1
原创 C++学习笔记(第四天)
派生类对象在构建的时候会先调用基类的构造方法(默认的会调用基类的无参构造)来构造派生类中从基类继承的部分(派生类中包含的基类对象),然后再调用自己的构造方法构造自己独有的部分。cout
2023-09-20 15:28:08
76
1
原创 C++学习笔记(第三天)
深拷贝: 在拷贝构造函数中不直接使用赋值运算符来初始化新对象的指针成员,而是采用先动态分配空间然后再将已有对象的指针指向的数据成员的值拷贝到新对象中(新旧两个对象的指针成员分别指向自己对象中分配的独立的空间),这样两个对象的指针成员部分相互影响。cout
2023-09-18 13:47:43
116
1
原创 C++学习笔记(第一天)
在C++中除了可以使用true或者false来给逻辑类型的变量进行赋值以外还可以使用具有值含义的数据或者表达式来赋值,但是当我们用表达式来给逻辑类型变量赋值的时候,根据表达式的值为0或者非0对应的变量的值为false或者true,在参与运算的时候true使用1、false使用0来进行。栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,如果频繁大量的使用就会造成因栈空间不足所造成的程序出错的问题,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。//不能p = &b;
2023-09-16 19:57:12
192
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人