自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 C++:string的模拟实现

它确保类可以调用无参构造。同时缺省值只能在类的定义和声明中的一处给。在类外声明需要注意类域和命名空间!因为在声明中已经给过了缺省参数(之后通过复用实现+=在字符串末尾追加字符或字符串.常量字符串默认有'\0'结束。

2024-03-01 15:25:01 357 1

原创 C++:string基本使用

1.string是表示字符串的字符串类2.该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作3.string在底层实际是:basic_string模板类的别名,4.不能操作多字节或者变长字符的序列。注意:在使用string类时,必须包含#include头文件以及using namespace std;

2024-02-27 16:08:46 814

原创 C++:内存管理和模板

C语言内存管理方式在C++中可以继续使用,但有些地方就无能为力,而且使用起来比较麻烦,因此C++又提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。而模板对于后面的学习用途将会更大。new/delete 和 malloc/free最大区别是 :new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数。new的功能:1.开辟空间 2.调用构造函数delete的功能:1.调用析构函数 2.释放空间class Apublic:: _a(a)

2024-02-02 21:30:53 887

原创 C++:初始化列表、static成员、友元

当类中有其他自定义类成员对象(有默认构造)时,内置成员会调用当前的构造初始化列表,自定义类成员自动调用它的默认构造,但是当自定义类成员没有默认构造时,编译就会报错,这个时候就需要用当前初始化列表对自定义类成员边进行初始化了。// 没有默认构造函数int& _ref;// 引用。

2024-01-26 21:36:48 838 1

原创 C++:const成员函数

1.能定义成const的成员函数都应该定义成const,这样const对象(权限平移)和非const对象(权限缩小)都可以调用。2.要修改成员变量的成员函数,不能定义成const,const对象不能调用,非const才能调用。

2024-01-25 12:12:55 355 1

原创 C++:运算符重载和赋值运算符重载

用户没有显式实现时,编译器会生成一个默认赋值运算符重载,以值的方式逐字节拷贝。也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。用户没有显式实现时,编译器会生成一个默认赋值运算符重载,以值的方式逐字节拷贝。一个全局的赋值运算符重载,就和编译器在类中生成的默认赋值运算符重载冲突了,故赋值。意:内置类型成员变量是直接赋值的,而自定义类型成员变量需要调用对应类的赋值运算符。3.用于内置类型的运算符,其含义不能改变,例如:内置的整型+,不能改变其含义。运算符重载只能是类的成员函数。

2024-01-22 21:32:52 1933

原创 C++:拷贝构造函数

默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝叫做浅拷贝,或者值拷贝。注意:在编译器生成的默认拷贝构造函数中,内置类型是按照字节方式直接拷贝的,而自定义类型是调用其拷贝构造函数完成拷贝的。编译器生成的默认拷贝构造函数已经可以完成字节序的值拷贝了,还需要自己显式实现吗?当然像日期类这样的类是没必要的。那么下面的类呢?//这里会发现下面的程序会崩溃掉?这里就需要我们以后讲的深拷贝去解决。public:perror("malloc申请空间失败");return;_size=0。

2024-01-22 21:29:33 355

原创 C++:构造函数和析构函数

构造函数和析构函数及调用顺序

2024-01-05 00:24:06 1185 1

原创 C++类和对象(上)

1.语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。2.C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完 成。//数据成员//成员函数// 一定要注意后面的分号1.class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分 号不能省略。2.类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。

2023-12-30 23:24:18 826 1

原创 C++:内联函数,auto关键字,nullptr

2. inline对于编译器而言只是一个建议,不同编译器关于inline实现机制可能不同,一般建议:将函数规模较小(即函数不是很长,具体没有准确的说法,取决于编译器内部实现)、不是递归、且频繁调用的函数采用inline修饰,否则编译器会忽略inline特性。1. inline是一种以空间换时间的做法,如果编译器将函数当成内联函数处理,在编译阶段,会用函数体替换函数调用,缺陷:可能会使目标文件变大,优势:少了调用开销,提高程序运行效率。如果有的函数需要频繁的使用,所用的时间会很长,从而降低程序的执行效率。

2023-12-28 22:05:34 814 1

原创 C++入门:引用

void g()//OK:初始化r1int& r2;//错误:缺少初始化器//OK: r3在别处初始化。

2023-12-25 21:40:06 1438 1

原创 C++入门:缺省参数与函数重载

编译后链接前,main.o的目标 文件中没有sum的函数地址,因为sum是在sum.c中定义的,所以sum的地址在sum.o中。链接阶段时,链接器看到main.o调用sum,但是没有sum的地址,就 会到sum.o的符号表中找sum的地址,然后链接到一起,生成可执行程序。:在linux下,采用g++编译完成后,函数名字的修饰发生改变,编译器将函数参 数类型信息添加到修改后的名字中。:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这 些同名函数的形参列表(

2023-12-25 16:05:41 348 1

原创 C++入门:命名空间

/ 命名空间中可以定义变量/函数/类型//一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中int val;int a=0;int b=1;int c=a+b;//嵌套定义命名空间int c;int d;// 一个工程中的test.h和上面test.cpp中两个N1会被合并成一个// test.h注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。

2023-11-14 12:29:12 23

原创 c语言之函数(上)

c语言之函数的认识、函数的简单应用、素数判断、闰年判断

2023-05-09 23:19:14 62 1

原创 c语言之循环语句

这篇文章将简单的学习一下C语言循环语句中的三种循环(while循环,for循环,do...while循环),九九乘法表的打印等

2023-04-23 13:02:24 99 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除