c++
文章平均质量分 78
学习c++!
kqs__
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ string类(一)
一些其他用法:C++内置提供了swap函数,以及string 提供了reverse;注意:1. size()与length()方法底层实现原理完全相同,引入size()的原因是为了与其他容器的接口保持一致,一般情况下基本都是用size()。2. reserve(size_t res_arg=0):为string预留空间,不改变有效元素个数,当reserve的参数小于string的底层空间总大小时,reserver不会改变容量大小。原创 2023-11-17 21:45:26 · 593 阅读 · 0 评论 -
C++ STL简介
是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。2. STL的版本原始版本Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费。唯一的条件就是也需要向原始版本一样做开源使用。HP 版本--所有STL实现版本的始祖。P. J. 版本。原创 2023-11-16 22:25:10 · 227 阅读 · 0 评论 -
C++ 模板 (一)
如何实现一个通用的交换函数呢?使用函数重载虽然可以实现,但是有一下几个不好的地方: 1. 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函数 2. 代码的可维护性比较低,一个出错可能所有的重载均出错 那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成对应的函数呢? 如果在C++中,也能够存在这样一个模具,通过给这个模具中填充不同材料(类型),来获得不同材料的铸件(即生成具体类型的代码),原创 2023-11-16 22:24:50 · 447 阅读 · 1 评论 -
C/C++内存管理
new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数class Apublic:: _a(a)~A()private:int _a;delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;free(p5);return 0;在vs2013版本编译器下:new多个对象时,系统会自动在对象前面加上。原创 2023-11-14 22:21:37 · 644 阅读 · 0 评论 -
c++类和对象(八) static成员 && 友元
定义时不添加static关键字,原创 2023-11-05 21:28:35 · 492 阅读 · 0 评论 -
C++类和对象(七)const成员 && 及其初始化列表
3. 尽量使用初始化列表初始化,因为不管你是否使用初始化列表,对于自定义类型成员变量,一定会先使用初始化列表初始化。4. 成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关。这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可,只有特殊情况,才需要重载,在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。1.能定义成const的成员函数都应该定义成const,这样const对象。2.要修改成员变量的成员函数,不能定义成const。原创 2023-11-03 22:27:16 · 384 阅读 · 0 评论 -
C++ 类和对象(六)赋值运算符重载
也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。函数名字为:关键字注意:不能通过连接其他符号来创建新的操作符:比如operator@重载操作符必须有一个类类型参数用于内置类型的运算符,其含义不能改变,例如:内置的整型+,不 能改变其含义作为类成员函数重载时,其形参看起来比操作数数目少1,因为成员函数的第一个参数为隐藏的this: . 注意以上5个运算符不能重载。这个经常在笔试选择题中出现。原创 2023-10-22 21:55:41 · 494 阅读 · 0 评论 -
C++类和对象(五) 拷贝构造函数
因此当我们创建形参的时候就要调用拷贝构造,调用拷贝构造的时候就会创建形参 ...... ........因此形成无穷递归调用。3.原创 2023-10-22 21:23:36 · 554 阅读 · 0 评论 -
C++类和对象(四) (构造函数 && 析构函数)
6. 关于编译器生成的默认成员函数,很多童鞋会有疑惑:不实现构造函数的情况下,编译器会生成默认的构造函数。但是看起来默认构造函数又没什么用?d对象调用了编译器生成的默认构造函数,但是d对象_year/_month/_day,依旧是随机值。也就说在。原创 2023-10-20 19:38:07 · 774 阅读 · 0 评论 -
C++类和对象(三) (this指针)
Date类中有 Init 与 Print 两个成员函数,函数体中没有关于不同对象的区分,那当d1调用 Init 函数时,该函数是如何知道应该设置d1对象,而不是设置d2对象呢?2. 只能在“成员函数”的内部使用。我们先来定义一个日期类 Date。当对象调用成员函数时,将对象地址作为实参传递给。即成员函数中,不能给this指针赋值。原创 2023-10-20 16:31:49 · 222 阅读 · 0 评论 -
C++类和对象(二)(类对象的存储方式)
问题:类中既可以有成员变量,又可以有成员函数,那么一个类的对象中包含了什么?如何计算一个类的大小?缺陷:每个对象中成员变量是不同的,但是调用同一份函数,如果按照此种方式存储,当一。个类创建多个对象时,每个对象中都会保存一份代码,相同代码保存多次,浪费空间。所以说符合第三种情况,每个类中的。对象中包含类的各个成员。原创 2023-10-20 16:34:41 · 162 阅读 · 0 评论 -
C++ 类和对象(一)
class为定义类的关键字ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类的两种定义方式:1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。2. 类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员一般情况下,更期望采用第二种方式。原创 2023-10-10 22:27:37 · 493 阅读 · 0 评论 -
C++基础知识(四) -- 内联函数
宏与内联函数的区别和联系......原创 2023-10-06 21:40:45 · 138 阅读 · 0 评论 -
C++基础知识(三) -- 引用
2. 一个变量可以有多个引用3. 引用一旦引用一个实体,再不能引用其他实体。原创 2023-10-05 22:21:44 · 311 阅读 · 0 评论 -
C++基础知识(二) -- 函数重载
自然语言中,一个词可以有多重含义,人们可以通过上下文来判断该词真实的含义,即该词被重载了。比如:以前有一个笑话,国有两个体育项目大家根本不用看,也不用担心。一个是乒乓球,一个是男足。前者是“谁也赢不了!”,后者是“谁也赢不了!是函数的一种特殊情况,C++允许在中声明几个功能类似,这些同名函数的,常用来处理实现功能类似数据类型不同的问题。原创 2023-10-05 08:41:29 · 289 阅读 · 0 评论 -
c++ 基础知识(一)
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。那么怎么使用呢?c++语法是兼容c:: 域作用限定符 , gm::a 就是在gm这个域来搜索a如果域前面什么都没有的话那就是在全局搜索3. 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。ps:一个工程中的test.h和上面test.cpp中两个gm1会被合并成一个注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。原创 2023-10-04 21:31:11 · 451 阅读 · 2 评论 -
c++的发展史以及如何学习
C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了思想,支持面向对象的程序设计语言应运而生。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行。原创 2023-10-04 19:48:39 · 1033 阅读 · 0 评论
分享