zzt_is_me
码龄2年
关注
提问 私信
  • 博客:66,522
    66,522
    总访问量
  • 101
    原创
  • 30,313
    排名
  • 940
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2023-05-24
博客简介:

zzt_is_me的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    500
    当月
    1
个人成就
  • 获得1,214次点赞
  • 内容获得0次评论
  • 获得705次收藏
创作历程
  • 101篇
    2024年
成就勋章
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

c++的运算符重载的局限性

需要注意的是,这些函数只能被定义为成员函数,而不能被定义为全局函数或友元函数。除了上述函数,其他函数可以被定义为全局函数或友元函数。只有无法修改该对象的代码时,才建议重载为全局函数,但重载全局函数需要在运算对象的类内设置友元,所以语法上支持,但实际情况是个死局。1、重载运算符的目标是为了提高代码可读性、实用性,如果达不该效果建议定义为函数。2、重载运算符函数时,要符合情况情理,不要反人性,不要成为你炫技的工具。,也叫赋值函数,要进行深拷贝时就需要重载。,可以把对象伪装成函数使用。sizeof 长度运算符。
原创
发布博客 2024.09.11 ·
384 阅读 ·
7 点赞 ·
0 评论 ·
1 收藏

c++的运算符重载

2、由于cin、cout都在>>、<<运算的左边,如果想实现成员运算符函数,就需要在istream、ostream类中实现,而我们无法增加或修改istream、ostream类的代码,所以只能实现全局的 >>、<< 运算符函数。1、cin、cout是标准库中具有输入、输出功能的类对象,它的类名叫istream、ostream,当我们想给某种类对象增加输入、输出的功能时,就需要实现 >>、<<运算符函数对于该类对象的支持,也就是重载输入、输出运算符。
原创
发布博客 2024.09.11 ·
733 阅读 ·
19 点赞 ·
0 评论 ·
12 收藏

c++的运算符函数

如果运算对象是自定义类型,还可以把运算符函数实现该类型的内部,a+b的运算符函数格式为。C++中把运算符当作函数处理,在表达式中遇到运算符时,编译器会先寻找相关的运算符函数。,一般由左边的运算对象发起调用,右边的运算对象作为参数。,运算对象都做为参数传递给该函数。格式的函数,这种函数又被称为。例如a+b,会先寻找。
原创
发布博客 2024.09.11 ·
348 阅读 ·
5 点赞 ·
0 评论 ·
0 收藏

c++的单例模式

只能创建出一个对象的结构、联合、类叫单例模式。
原创
发布博客 2024.09.10 ·
1124 阅读 ·
22 点赞 ·
0 评论 ·
7 收藏

c++的静态成员

被static修饰过的成员变量叫静态成员变量。class Test// 静态成员public:被static修饰的成员函数叫静态成员函数。
原创
发布博客 2024.09.10 ·
675 阅读 ·
6 点赞 ·
0 评论 ·
3 收藏

c++的拷贝构造函数和赋值函数

是一种特殊构造函数,如果没有显式的实现,编译器就会自动生成。class 类名public:// 拷贝构造类名(const 类名& that)是一种特殊的成员函数,如果没有显式实现,编译器会自动生成。class 类名public:// 赋值函数const 类名& operator=(const 类名& that)
原创
发布博客 2024.09.10 ·
1058 阅读 ·
30 点赞 ·
0 评论 ·
8 收藏

c++的this指针与常函数

在成员函数的参数列表的末尾(小括号后面),用const修饰,这种成员就叫常函数。class 类名public:// 常函数返回值 函数名(参数列表) const在定义结构、联合、类对象时,使用const修饰,这种对象就叫常对象。const 类名 对象名;const 类名* 指针变量 = new 类名;
原创
发布博客 2024.09.08 ·
1316 阅读 ·
17 点赞 ·
0 评论 ·
16 收藏

c++的初始化列表与const成员

不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。在构造函数小括号后面,主要用于给const成员初始化的一种特殊语法,也可以给普通成员初始化(可以解决参数名与成员变量名同名的问题)。注意:如果有成员是类、结构、联合类型的,还可以在初始化列表中显式调用成员的构造函数,还可以调用父类的构造函数。使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。// 可以使用,但只有C11标准才支持。
原创
发布博客 2024.09.08 ·
480 阅读 ·
11 点赞 ·
0 评论 ·
1 收藏

c++的构造函数与析构函数

如果类中有单参的构造函数,那么它的参数类型数据就能隐藏提升为类对象,如果不使用该功能,可以在单参构造函数的前面加 explicit 关键字,参数类型数据就不能再隐藏提升为类对象。注意:在使用new[] 创建n个对象时,无法保证给所有的类对象都单独提供参数,去调用有参构造,那么必然需要调用无参构造,此时如果没有显式实现无参构造,编译就会出错。在创建类对象时,一定会调用构造函数,如果类中没有显式实现构造函数,编译器会自动生成一个无参的什么都不做的构造函数。cout << "我是无参构造函数" << endl;
原创
发布博客 2024.09.08 ·
1550 阅读 ·
18 点赞 ·
0 评论 ·
21 收藏

c++的类和对象

把抽象结果(利用面向对象的思维模式,思考、观察出的结果),使用用C++的语法封装出一种类似结构的自定义数据类型(复合数据类型)。使用设计好的类(结构)这种数据类型,定义出的类变量在面向对象编程语言中被称为对象(结构变量),创建类对象的行为也被称为实例化对象。​int id;short age;public:cout << "请输入学生的学号、姓名、年龄、成绩:";// 学号:10010 姓名:hehe 年龄:18 成绩:100。
原创
发布博客 2024.09.06 ·
834 阅读 ·
28 点赞 ·
0 评论 ·
16 收藏

c++的面向过程与面向对象

2、在解决一个复杂庞大的问题时,把问题拆分成若干个小问题,每个小问题实现一个类去解决,最后把这若干个类通过继承进行汇总,达到解决问题的目的,这个方式可以降低问题的规模在难度,也方便团队分工、协作。,编译器在编译代码时根据语句的参数、环境不同,能翻译出具有不同功能的二进制指令,例如:调用重载的函数,cin、cout的自动类型识别,模板技术(后续讲解)。1、在解决一个问题之前,先考虑现有的类是否能解决部分问题,如果有则继承该类,在此基础上进行扩展,以缩短解决问题的时间(代码复用)。
原创
发布博客 2024.09.06 ·
436 阅读 ·
8 点赞 ·
0 评论 ·
3 收藏

c++的名字空间

在C语言中定义的全局变量、函数、结构、联合、枚举、枚举值、宏都在全局作用域下,所以当项目比较庞大时,非常容易造成命名冲突(以模块名作前缀、后缀),所以C++中选择把全局作用域进行拆分成子作用域进行管理,这些子作用域就是作名字空间。
原创
发布博客 2024.09.06 ·
881 阅读 ·
27 点赞 ·
0 评论 ·
11 收藏

c++操作符别名

C、C++语言中使用的运算符或符号,在个别地区的键盘上是没有的,为了让所有人都使用C++进行编程,所以就对个别的字符取了别名。&& 等价于 and。
原创
发布博客 2024.09.03 ·
275 阅读 ·
6 点赞 ·
0 评论 ·
0 收藏

c++类型转换

4、之所以设计这么复杂就是为了让程序员记不住,不使用强制类型转换,因为C++之父本贾尼·斯特劳斯特卢普认为好的代码设计就不应该使用强制类型转换,当需要强制类型转换时,他希望程序员去优化自己的代码不是使用强制类型转换。1、C语言中的强制类型转换语法在C++中还可以继续使用,但官方不建议这样,因为有安全隐患。2、void类型的指针不能再隐式转换成其它类型的指针。reinterpret_cast<目标类型>(数据)dynamic_cast<目标类型>(数据)static_cast<目标类型>(数据)
原创
发布博客 2024.09.03 ·
365 阅读 ·
5 点赞 ·
0 评论 ·
0 收藏

c++引用和指针

引用是一种取名机制,它可以给变量重新取一新的名字,所以引用也叫别名。
原创
发布博客 2024.09.03 ·
527 阅读 ·
8 点赞 ·
0 评论 ·
7 收藏

c++堆内存管理

6、在申请数组型的内存块时,使用new 类型[n],释放内存时使用delete[],不能与new/delete不能混用,因为new[]/delete[]会自动调用n次构造、析构函数,而new/delete只调用一次构造、析构函数。使用new[] 申请数组型的堆内存时(结构、联合、类对象),所申请内存块的前4个字节,记录着内存块的块数,所以使用delete []释放内存时可以准确调用n次析构函数。5、在C++中malloc系列函数为结构、联合、类对象申请、释放内存时,不会自动调用构造、析构函数。
原创
发布博客 2024.09.03 ·
871 阅读 ·
21 点赞 ·
0 评论 ·
11 收藏

c++的函数

C++标准委员会设计一种特殊函数,函数在声明时在返回值类型的前面增加 inline 关键字,当调用该函数时,编译器不会生成跳转指令,而是函数的二进制指令直接拷贝到调用位置,这样执行该函数时,直接执行二进制指令,不需要跳转,也不需要返回,所以执行速度比普通函数快,就像宏函数,但过多使用会造成冗余,代码段变大。2、g++在编译调用函数的语句时,会先尝试调用换名的函数,此时会发现没有该版本的函数声明,然后再尝试调用未换名的函数,这样编译器生成就是未换名的函数调用指令,就能成功调用C的库文件中的函数。
原创
发布博客 2024.09.02 ·
987 阅读 ·
23 点赞 ·
0 评论 ·
19 收藏

c++的结构、联合、枚举

2、在C++中结构、联合的内部,可以有成员函数,使用结构、联合对象加.或->调用,成员函数的内部可以直接使用成员变量,成员函数可以自动区别对象的成员变量。1、在C++中定义结构、联合对象时,struct、union关键字可以省略(也就不需要使用typedef进行类型重定义)。4、在C++中创建、销毁结构、联合对象时,会自动调用构造函数(以结构名命名)、析构函数(~结构名命名)。cout << "我是构造函数" << endl;cout << "我是析构函数" << endl;private 私有的成员。
原创
发布博客 2024.09.02 ·
558 阅读 ·
9 点赞 ·
0 评论 ·
6 收藏

c++的基本数据类型

在C语言中使用char类型的数组或char*指针指向的内存来存储字符串,使用string.h中的函数操作字符串,但在C++中使用string类型字符串变量,使用相关的运算符操作字符串。其它类型指针 可以自动转换成 void*,之所以保留是因为C标准库、操作系统、第三方库中有大量的函数的参数使用了void*作为参数,如果该功能不保留,这类函数就无法再正常调用。注意:string类型的底层,依然是使用char类型的指针、数组实现的,并不是一种全新的类型,而是对char字符串的封装。// 比较字符串,==!
原创
发布博客 2024.09.02 ·
680 阅读 ·
9 点赞 ·
0 评论 ·
6 收藏

c++的Hello World!

C++语言的标准库文件,文件名的末尾不带.h,iostream用于标准输入输出头文件,C语言的相关头文件还可以继续使用。为了统一命名风格,C++为C语言重定义了不带.h标准库头文件,例如:stdio.h重定义了cstdio。cout和cin可以自动识别数据类型,但输入输出复杂格式的数据时,没有printf和scanf好用。cout << 要输出的数据 << endl,多个数据用<<隔开。printf和scanf还可以继续使用,但需要包含相关的头文件。自定义的头文件,还可以继续以.h结尾。
原创
发布博客 2024.09.02 ·
399 阅读 ·
16 点赞 ·
0 评论 ·
3 收藏
加载更多