C++学习
SupMate
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
类的大小判断
中(vs , g++)给了空类。来唯一标识这个类的对象。原创 2023-05-29 15:57:13 · 107 阅读 · 0 评论 -
流插入运算符<<
不能重载成类的成员函数,因为第一个参数必须是ostream&,因此该运算符只能重载为全局函数,一般情况下都重载为类的友元函数。:友元类的所有成员函数都可以是另一个类的友元函数,都可以访问另一个类中的非共有成员。:一个类定义在另一个类内部。原创 2023-05-26 16:54:44 · 376 阅读 · 0 评论 -
友元函数
3.友元函数不受访问限定符的约束,因为友元函数不是类的成员函数。1.友元函数并不是类的成员函数,所以没有this指针。4.一个函数可以是多个类的友元函数。2.友元函数不能被const修饰。友元函数可以访问类中的私有成员变量。原创 2023-05-15 17:07:15 · 79 阅读 · 0 评论 -
static静态成员变量、static静态成员函数
构造函数,析构函数,拷贝构造函数不能是static静态成员函数,不能是const函数。②通过 类名 :: 成员函数() 调用。①通过 对象 . 成员函数() 调用。,用static修饰的成员变量,称之为。用static修饰的成员函数,称之为。声明为static的类的成员,称为。静态成员变量一定要在类外进行初始化。原创 2023-05-12 11:46:37 · 103 阅读 · 0 评论 -
explicit关键字
可读性差,不了解背后执行逻辑的情况下,可能会认为就是在用整形数字2022给d对象赋值。3.匿名对象只在赋值语句一行有效,当赋值结束后,匿名对象被销毁。:1.先用2022调用单参的构造方法创建一个匿名对象(没有名字的对象)explicit修饰构造方法,表明禁止单参构造方法类型转换的作用。2.使用匿名对象给 d 进行赋值。:用explicit修饰构造方法。原创 2023-05-11 15:31:31 · 82 阅读 · 0 评论 -
初始化列表
如果类没有无参或者全缺省的构造方法,编译器报错(解决方法 ① 给Time类添加无参或者全缺省的构造方法(不推荐,因为Time类可能不是自己实现的)② 将Date类初始化类表显示给出,然后调用Time类带有参数的构造方法初始化_t)2.类中一下成员必须放在初始化列表位置进行初始化①引用成员变量②const成员变量③自定义成员类型(且该类没有默认构造函数时/如果没有无参或者全缺省的构造方法)5.成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关。原创 2023-05-11 11:23:45 · 92 阅读 · 0 评论 -
const成员函数
将const修饰的成员函数称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。5.在const成员函数中,一定要修改某个成员变量时,在定义该成员变量时,使用mutable关键字修饰该成员变量。3.非const成员函数可以调用其他const成员函数,也可以调用非const成员函数。4.const成员函数不可以调用非const成员函数,只能调用其他const成员函数。2.普通对象能调用const成员函数。原创 2023-05-10 17:09:24 · 325 阅读 · 0 评论 -
学习笔记 this指针
this指针的学习原创 2023-02-23 19:30:08 · 122 阅读 · 1 评论 -
C++学习
因为编译器可能会考虑程序运行效率问题,如果编译器感觉生成的构造方法没有意义,则不再生成了(如果A类中包含有B类的对象,A类没有显示定义任何构造函数,而B类定义了无参的构造函数,此时编译器一定会给A类生成一个无参的构造函数)5.类中没有显式定义构造函数,则C++编译器会自动生成一个无参的默认构造函数,一旦用户显示定义编译器将不在生成如。在类中,如果用户没有显示定义任何构造函数,则编译器一定会生成一份无参的构造函数。在具体实现时,可能和语法稍微有些出入。(即没有定义构造函数时,编译器会自动生成,但无参数)原创 2023-04-11 21:37:29 · 96 阅读 · 1 评论 -
析构函数
时,一般不写,因为编译器就可以完成拷贝的工作,如果涉及到资源管理时,拷贝构造函数需要自己写(编译器按照值的方式拷贝的 即:将一个对象的内容原封不动的拷贝到另一个对象中)4.编译器生成的拷贝构造(虽然没有生成但是也可以完成拷贝构造的工作),既然编译器已经可以完成,那拷贝构造函数还需要用户自己写吗?因为Stack中没有写拷贝构造函数,所以将类中的值原封不动的拷贝到另一个类中,即拷贝了地址,没有拷贝值。:与构造函数的功能相反,对象在销毁时会自动调用析构函数,完成对象中资源的销毁(清理资源)原创 2023-05-08 17:00:14 · 482 阅读 · 1 评论 -
运算符重载
1.如果返回的是匿名对象,则编译器不会再用匿名对象拷贝构造临时对象,而是直接将匿名对象返回了(匿名对象:没有名字的对象,如Date(2023,5,8)),会提高代码效率。:自定义类型不能用==来比较,因为编译器不知道怎么比较,如果一定要使用==来比较自定义类型对像,必须告诉编译器比较的规则,即运算符重载(operator):如果编译器感觉生成的构造方法没有实际含义,则不生成,凡是编译器 生成的,一定是自己需要的。3.重载的运算符必须要满足其的含义,即>重载后还是>的用途。原创 2023-05-09 11:03:42 · 102 阅读 · 0 评论
分享