当前位置: 首页 > news >正文

二级网站建设方案模板做ppt的网站叫什么名字

二级网站建设方案模板,做ppt的网站叫什么名字,织梦html5手机网站模板,网站建设时间计划书在 C 中,虚表指针(vptr)所在的内存分区与对象的存储位置相关,下面分不同情况进行介绍: 栈区 当对象是在栈上创建的局部对象时,虚表指针会随着对象一起被分配到栈区。栈区主要用于存储函数内部的局部变量和…

在 C++ 中,虚表指针(vptr)所在的内存分区与对象的存储位置相关,下面分不同情况进行介绍:

栈区

当对象是在栈上创建的局部对象时,虚表指针会随着对象一起被分配到栈区。栈区主要用于存储函数内部的局部变量和函数调用的上下文信息,其内存分配和释放由系统自动管理。当函数执行结束,栈上的对象会被自动销毁,虚表指针也随之消失。

示例代码

#include <iostream>class Base {
public:virtual void func() {std::cout << "Base::func()" << std::endl;}
};void test() {Base obj;  // 在栈上创建对象// obj 对象的虚表指针位于栈区obj.func();
}int main() {test();return 0;
}

在上述代码中,test 函数内部的 Base 对象 obj 是在栈上创建的,该对象包含的虚表指针也会存储在栈区。

堆区

  如果对象是使用 new 运算符在堆上动态分配的,那么虚表指针会随着对象一起被分配到堆区。堆区用于动态内存分配,由程序员手动管理内存的分配和释放(使用 new 和 delete)。只要对象没有被显式地使用 delete 释放,它就会一直存在于堆区,虚表指针也会一直存在。

示例代码

#include <iostream>class Base {
public:virtual void func() {std::cout << "Base::func()" << std::endl;}
};int main() {Base* ptr = new Base();  // 在堆上创建对象// ptr 指向的对象的虚表指针位于堆区ptr->func();delete ptr;  // 释放堆上的对象return 0;
}

 在这个例子中,Base 对象是通过 new 运算符在堆上创建的,其虚表指针也会存储在堆区,直到使用 delete 释放该对象。

全局 / 静态存储区

  当对象是全局对象或者静态对象时,虚表指针会存储在全局 / 静态存储区。全局对象在程序启动时就被创建,直到程序结束才被销毁;静态对象在第一次使用时被创建,并且在程序的整个生命周期内都存在。

示例代码

#include <iostream>class Base {
public:virtual void func() {std::cout << "Base::func()" << std::endl;}
};Base globalObj;  // 全局对象,虚表指针位于全局/静态存储区void test() {static Base staticObj;  // 静态对象,虚表指针位于全局/静态存储区staticObj.func();
}int main() {globalObj.func();test();return 0;
}

在上述代码中,globalObj 是全局对象,staticObj 是静态对象,它们的虚表指针都存储在全局 / 静态存储区。

虚表本身的存储位置

虚表(vtable)通常存储在只读数据段(RODATA),这是因为虚表中的内容在程序运行期间是固定不变的,包含了类的虚函数的地址等信息,将其放在只读数据段可以保证数据的安全性和共享性。

http://www.dtcms.com/a/482477.html

相关文章:

  • Java优选算法——位运算
  • Linux编辑器vim
  • 大模型-去噪扩散概率模型(DDPM)采样算法详解
  • LeetCode 398:随机数索引
  • 通过公网STUN服务器实现UDP打洞
  • 手机怎样设计网站建设哪个网站有做兼职的
  • 分布式专题——44 ElasticSearch安装
  • Java HTTP编程深度解析:从基础到微服务通信的完整架构实践
  • 3dgs train.py详解
  • Ruby Socket 编程
  • 阿里云linux主机如何添加2个网站中山网站建设方案托管
  • React 状态管理中的循环更新陷阱与解决方案
  • 手机h5免费模板网站深圳网页设计培训要多久
  • 网站快速建设网络营销公司介绍
  • 唐山seo网站建设企业网站的建立如何带来询盘
  • 上海虹口网站建设重庆网站建设公司的网站
  • 自动化测试之 Cucumber 工具
  • 基于MATLAB的t-SNE算法多合成数据集降维可视化实现
  • SAP 关于工单的状态更改,这个要怎么查看呢?
  • 网站建设费用会计分录男女做暧暧视频免费网站
  • 如何高效编写MySQL数据导出与导入语句?
  • 第六部分:VTK进阶(第160章 体绘制采样与空域加速)
  • 网站开发什么意思泾阳做网站
  • 什么是swc?
  • 第九章 装饰器与闭包
  • 接口测试案例从哪些维度去设计
  • 协程入门(基础篇)
  • 建设好网站的在线沟通功能广州开发区投资集团有限公司招聘
  • 如何将 iPhone 联系人同步到 Mac
  • 织梦的网站收录不好保定网站建设设计