初识C++中面向对象

C++中面向对象        

        很久以前就听说过C++,这是在C语言的基础之上完善升级的一门编程语言(但据说到现在二者已经大相径庭了),C++完全向下兼容C语言的所有用法,而在一些C语言不够完善的地方进行了一些升级,使得其使用更加方便快捷、效率更高;其中C++有一个很重要的知识点,那就是——面向对象。

内存分区

        我们知道在内存中有分区——代码区、全局区、栈区和堆区,我们主要来探讨一下堆区,和C语言相似,C++中堆区也是由程序员自己向内存申请,并且自己释放的内存区域,这有很多的好处——它可以在堆区开辟出一些区域来分配给程序,所以说能够在一定程度上避免栈溢出的问题(strack overflow)还可以根据用户的需求更加灵活的分配宝贵的内存。而且能增强程序的灵活性,使得对于用户更加的友好。

C语言中向堆区申请内存

        C语言中,我们知道几个内存函数,最简单的——我们使用malloc函数来向堆区申请内存

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>//用strerror函数的头文件
#include<errno.h>//用erron函数的头文件
#include<string.h>//用于报错的头文件
int main()
{
	int* p = (int*)malloc(40);//malloc函数申请40字节的空间,用p来接受
	if (p == NULL)//判断,如果没有申请成功,则p为空指针
	{
		printf("p:%s", strerror(errno));//将错误信息打印
		return 1;//如果错了就不执行了,直接终止代码,并且返回1
	}
	int i = 0;//如果申请成功
	for (i = 0; i < 10; i++)//则给p初始化
	{
		*(p + i) = i + 1;
	}
	for (i = 0; i < 10; i++)//将p打印出来看看
	{
		printf("%d ", *(p + i));
	}
	return 0;
}

        就像这样,我们在堆区中申请了40个字节的内存空间,用指针变量p来接收。这就有很多的好处了——比如在函数调用过程中的局部变量和临时变量会随着函数的结束而被释放,所以说我们不能用函数返回局部变量和临时变量;但用了malloc函数之后,就可以了——因为函数中的变量创建是在栈区,而malloc是在堆区中申请的内存,所以说完全不影响,这个空间是由我们自己来释放的(如果不释放,它的生命周期就是整个程序的生命周期)。这样我们就可以返回局部变量和临时变量了,十分的方便。

C++中向堆区申请内存

        C++中对于堆区内存的申请释放,原理和C语言是一模一样的,只是有些关键字等有细微的差别:

int main()
{
	int* p = new int(10);
	cout << p << endl;
	cout << *p << endl;

	return 0;
}

        我们使用了new这个关键字来向堆区中申请内存,申请的内存是一个地址,所以说我们要用指针变量p来接收这个地址。new后面的是申请的数据类型,上文这么写是相当于在堆区中申请了4个字节来存储一个整型,值是10。 

 

相关推荐

  1. C++面向对象

    2024-01-31 19:38:01       33 阅读
  2. 面向对象

    2024-01-31 19:38:01       14 阅读
  3. 面对对象

    2024-01-31 19:38:01       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-31 19:38:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-31 19:38:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-31 19:38:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-31 19:38:01       20 阅读

热门阅读

  1. 网络安全战略中的法律问题

    2024-01-31 19:38:01       32 阅读
  2. 记 2024-01-30 fiber 学习

    2024-01-31 19:38:01       40 阅读
  3. MySQL 常用函数学习总结

    2024-01-31 19:38:01       31 阅读
  4. Docker

    Docker

    2024-01-31 19:38:01      28 阅读
  5. 第二百九十六回

    2024-01-31 19:38:01       34 阅读
  6. WriteFlow写作流GPT应用,激发创意的写作助手

    2024-01-31 19:38:01       34 阅读
  7. Python 安装 llama 库

    2024-01-31 19:38:01       39 阅读
  8. 使用HSE配置系统时钟

    2024-01-31 19:38:01       42 阅读