C++
文章平均质量分 87
主要讲解C++知识点
玖剹
这个作者很懒,什么都没留下…
展开
-
C++之模板初阶
重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函数。如果类型不匹配,编译器会尝试进行隐式类型转换,如果无法转换成功编译器将会报错。3.只有一个,类型转换一下也可以用的,也可以匹配调用。使用模版,并没有让效率得到提高,只是让代码变得更简单,书写更加便利。1.在都有的情况下,优先匹配匹配普通函数+参数匹配。2.没有普通函数,优先匹配参数类型匹配的+函数模版。代码的可维护性比较低,一个出错可能所有的重载均出错。,对于字符类型也是如此。,对于模板函数的使用,原创 2024-05-03 22:45:37 · 437 阅读 · 0 评论 -
C/C++内存管理
目录一:C/C++内存分布二:C语言中动态内存管理方式:malloc/calloc/realloc/free三:C++内存管理方式3.1new/delete操作内置类型3.2new和delete操作自定义类型四:operator new与operator delete函数4.1operator new与operator delete函数五:new和delete的实现原理5.1内置类型5.2自定义类型六:定位new表达式(placement-new)三:C++内存管理方式C语言内存管理方式在C++中原创 2024-05-03 22:32:32 · 918 阅读 · 0 评论 -
C++之类和对象
其他成员既可以在初始化链表中初始化,也可以在函数体内构造。原创 2024-04-29 22:43:23 · 649 阅读 · 0 评论 -
日期类的实现,const成员
这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可,只有特殊情况,才需。三:取地址及const取地址操作符重载。修饰类成员函数,实际修饰该成员函数。这两个默认成员函数一般不用重新定义。,编译器默认会生成。,表明在该成员函数中。原创 2024-04-28 22:03:22 · 552 阅读 · 0 评论 -
拷贝构造函数
默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝叫做浅拷贝,或者值拷贝。原创 2024-04-10 20:28:38 · 333 阅读 · 0 评论 -
构造函数和析构函数
6.关于编译器生成的默认成员函数,很多童鞋会有疑惑:不实现构造函数的情况下,编译器会生成默认的构造函数。但是看起来默认构造函数又没什么用?d对象调用了编译器生成的默认构造函数,但是d对象_year/_month/_day,依旧是随机值。也就说在这里。原创 2024-04-06 21:24:43 · 819 阅读 · 0 评论 -
类的作用域及计算
3.做个比方,类实例化出对象就像现实中使用建筑设计图创建出房子,类就像设计图,只设计需要什么东西,实际上并没有实体的建筑存在,同样类也是一个设计,实例化出对象才能实际存储东西,占物理空间。缺陷:每个对象中的成员变量是不同的,但是调用的函数是相同的,如果按照这种此种方式存储,当一个类创建多个对象时,前面实例化时有讲到,对于函数变量的定义是开辟了空间给变量,如果空类的字节大小是0,那么下面的情况如何解释?如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整。原创 2024-04-05 18:16:36 · 1155 阅读 · 0 评论 -
C++之类
/类体:由成员函数和成员变量组成//注意后面的分号class是定义类的关键词,classname是类的名字,{}中为类的主体,注意类定义结束时后面的分号不能省略类体中内容被称为类的成员:类中的变量称为类的属性或者成员变量;类的函数称为类的方法或者成员函数3.1类的两种定义方式。原创 2024-04-04 21:27:21 · 960 阅读 · 6 评论 -
引用,内联函数,auto函数,指针nullptr
在早期C++/C语言中auto的含义是:使用auto修饰变量,是具有自动存储器的局部变量,但是遗憾的是一直没有人使用它。auto不再是一个储存类型的指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须是有编译器在编译时推导而得。注意:使用auto定义的变量必须对其初始化,在编译阶段需要根据初始化表达式来推导auot实际类型。因此auto并非是一种“类型”的声明,而是一个类型声明时的占位符,编译器在编译时会将auto替换为变量实际的类型。原创 2024-04-01 21:05:52 · 979 阅读 · 0 评论 -
函数重载和引用
分析为什么支持重载时,要有一个大前提,就是函数的定义要和声明分离,在不同的文件中,如果在同一个文件中,就可以直接拿到函数地址了,就不用通过函数名了。在讲解这个问题之前,我先说一下三个文件,编译链接的过程,详细过程,我在C语言专栏的编译链接里面有讲述,想了解更多的可以去看一下。在交换两个函数的时候,直接传值是不可以的,一般我们都要传地址,而在C++我们可以通过传别名来做。1.直接使用函数名找函数地址,不支持函数重载,如果函数名一样,不知道调用的函数是哪一个。,编译器不会为引用变量开辟内存空间,它和它的引用。原创 2024-03-29 20:45:57 · 675 阅读 · 0 评论 -
初步了解C++
C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机,20世纪80年代, 计算机界提出了OOP(object:面向对象思想,支持面向对象的程序设计语言应运而生。1982年,博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行。原创 2024-03-29 15:56:54 · 1463 阅读 · 0 评论