C++
文章平均质量分 93
iheal
专注搞技术
展开
-
C++内存管理
public :};// 申请单个Test类型的空间 Test * p1 =(Test *) malloc(sizeof(Test));free(p1);// 申请3个Test类型的空间 Test * p2 =(Test *) malloc(sizeof(Test) * 3);free(p2);// 申请单个Test类型的对象 Test * p1 = new Test;// 申请3个Test类型的对象 Test * p2 = new Test [ 3 ];Test1();原创 2022-10-29 22:00:47 · 183 阅读 · 0 评论 -
日期类实现和一些细节处理
日期类的实现在前面学过默认成员函数后,我们就可以写一个简单的日期类了。如何写呢?我们可以先分析分析。日期类的成员变量都是int类型,那么构造函数是要显式定义的,成员变量都是int类型,因此浅拷贝即可。因此拷贝构造、析构、赋值操作符重载都不需要我们显式定义,使用编译器生成的就好。#include<iostream>using namespace std;int MonthDay[13] = { 0, 31,28,31,30,31,30,31,31,30,31,30,31 };b原创 2022-05-24 20:43:09 · 135 阅读 · 0 评论 -
C++运算符重载
运算符重载本文包括了对C++类的6个默认成员函数中的赋值运算符重载和取地址和const对象取地址操作符的重载。运算符是程序中最最常见的操作,例如对于内置类型的赋值我们直接使用=赋值即可,因为这些编译器已经帮我们做好了,但是对象的赋值呢?能直接赋值吗?概念C++为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。函数名字为:关键字operator后面接需要重载的运算符符号。函数原型:返回值类原创 2022-05-24 20:42:16 · 320 阅读 · 0 评论 -
C++拷贝构造函数
拷贝构造函数我们经常会用一个变量去初始化一个同类型的变量,那么对于自定义的类型也应该有类似的操作,那么创建对象时如何使用一个已经存在的对象去创建另一个与之相同的对象呢?构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用拷贝构造函数是构造函数的一个重载,因此显式的定义了拷贝构造,那么编译器也不再默认生成构造函数。特征拷贝构造也是一个特殊的成员函数特征如下:拷贝构造是构造函数的一个重载;拷贝构造的参数只有一个原创 2022-05-24 20:41:44 · 182 阅读 · 0 评论 -
C++析构函数
析构函数既然在创建对象时有构造函数(给成员初始化),那么在销毁对象时应该还有一个清除成员变量数据的操作咯。概念析构函数:与构造函数功能相反,析构函数不是完成对象的销毁,局部对象销毁工作是由编译器完成的。而对象在销毁时会自动调用析构函数,完成类的一些资源清理工作。特性析构函数是特殊的成员函数特征如下:析构函数名是~类名;无参数无返回值;一个类有且只有一个析构函数;对象声明周期结束,编译器自动调用析构函数;class Stack{public: Stack(int cap原创 2022-05-24 20:41:01 · 3307 阅读 · 1 评论 -
C++构造函数
类的6个默认成员函数如果我们写了一个类,这个类我们只写了成员变量没有定义成员函数,那么这个类中就没有函数了吗?并不是的,在我们定义类时即使我们没有写任何成员函数,编译器会自动生成下面6个默认成员函数。class S{public: int _a;};这里就来详细介绍一下构造函数。构造函数使用C语言,我们用结构体创建一个变量时,变量的内容都是随机值,要想要能正确的操作变量中存储的数据,我们还需要调用对应的初始化函数,给成员变量赋一个合适的初值。那么C++呢,我们仍然使用这个方法来试试。原创 2022-05-24 20:40:30 · 8788 阅读 · 0 评论 -
C++类和对象(上)
2022-05-20-摘要面向过程和面向对象初步认识类的引入类的定义类的作用域类的实例化类的访问限定符及封装类的对象大小计算类的成员函数的this指针总结目录文章目录2022-05-20-摘要总结目录@[toc]面向过程和面向对象初步认识类的引入类的定义类的访问限定符及封装访问限定符封装类的作用域类的实例化类对象模型计算类对象的大小类对象的存储方式结构体内存对齐规则this指针this指针的特性关于this指针面向过程和面向对象初步认识C语言是面向过程的,关注的是过程,分原创 2022-05-24 20:38:48 · 167 阅读 · 0 评论 -
C++入门基础(下)
2022-05-17-摘要总结目录文章目录2022-05-17-摘要总结目录@[toc]内联函数概念特性内联函数的缺点一些其他不足auto关键字auto简介详细使用规则auto不能推导类型的场景基于范围的for循环范围for的语法范围for的使用条件新的指针空值nullptr C++11内联函数C++中函数的使用我们已经比较清楚了,与C语言中函数的使用大多相同,主要是增加了重载的特性,对C语言的函数的一些缺陷做了一些补充。那么对于一些比较简单却又经常使用的功能,我们在C语言中常常使用宏来替原创 2022-05-18 07:47:28 · 731 阅读 · 0 评论 -
指针和引用的区别
前言指针和引用在形式上很好区别,在C++中相比于指针我们更喜欢使用引用,但是它们的使用场景又极其类似,它们都能直接引用对象,对对象进行处理,那么究竟为什么会引入?什么时候使用指针?什么时候使用引用?这两者实在容易混淆,在此我详细介绍一下指针和引用。指针和引用的定义维基百科中这样解释指针:在计算机科学中,指针(英语:Pointer),是编程语言中的一类数据类型及其对象或变量,用来表示或存储一个存储器地址,这个地址的值直接指向(points to)存在该地址的对象的值。引用:在C++编程语言中,引原创 2022-05-16 16:32:12 · 16314 阅读 · 2 评论 -
C++入门基础(上)
2022-04-29-摘要总结目录文章目录2022-04-29-摘要总结目录@[toc]C++关键字命名空间命名空间定义命名空间的使用指定使用全局域中的内容C++输入输出缺省参数缺省参数的分类函数重载函数重载的概念函数重载的底层实现对重载函数的调用不明确extern “C”引用引用的概念引用特性常引用使用场景传值和传引用的区别引用和指针的区别一些引用的注意事项C++关键字C++关键字全集(参考 C++ Primer ):asmautobad _castbad _typeid原创 2022-05-16 13:58:09 · 291 阅读 · 0 评论 -
C++和C的混合编译
简介C++ 语言的创建初衷是 “a better C”,但是这并不意味着 C++ 中类似 C 语言的全局变量和函数所采用的编译和连接方式与 C 语言完全相同。作为一种欲与 C 兼容的语言, C++ 保留了一部分过程式语言的特点(被世人称为"不彻底地面向对象"),因而它可以定义不属于任何类的全局变量和函数。但是, C++ 毕竟是一种面向对象的程序设计语言,为了支持函数的重载, C++ 对全局函数的处理方式与 C 有明显的不同。本文将介绍如何通过 extern “C” 关键字在 C++ 中支持 C 语言 和原创 2022-04-30 18:16:17 · 5247 阅读 · 8 评论