简单明了证明多态虚表是位于常量区

这篇具有很好参考价值的文章主要介绍了简单明了证明多态虚表是位于常量区。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

证实虚表存储与常量区

class Person {
public:
	virtual void BuyTicket() { cout << "买票-全价" << endl; }

	virtual void Func1() 
	{
		cout << "Person::Func1()" << endl;
	}

	virtual void Func2() 
	{
		cout << "Person::Func2()" << endl;
	}

//protected:
	int _a = 0;
};

class Student : public Person {
public:
	virtual void BuyTicket() { cout << "买票-半价" << endl; }

private:
	virtual void Func3()
	{
		//_b++;
		cout << "Student::Func3()" << endl;
	}
protected:
	int _b = 1;
};

void Func(Person& p)
{
	p.BuyTicket();
}

int main()
{
	Person ps;
	Student st;

	//栈区
	int a = 0;
	printf("栈区:%p\n", &a);

	//堆区
	int* b = new int;
	printf("堆区:%p\n", b);

	//静态区
	static int c = 0;
	printf("静态区:%p\n", &c);

	//常量区
	const char* s = "hello world";
	printf("常量区:%p\n", s);

	//判断
	printf("判断:%p\n", *((int*)&ps));
	printf("判断:%p\n", *((int*)&st));

	return 0;
}

简单明了证明多态虚表是位于常量区,c++,c++文章来源地址https://www.toymoban.com/news/detail-603935.html

到了这里,关于简单明了证明多态虚表是位于常量区的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 简单明了的Git入门

    1、根据连接下载 git-scm.com 一路点击“下一步”,然后取消“view Release Notes” 安装成功后,鼠标右键点击第二个“Git” 配置用户名 git config --global user.name Mihu 配置邮箱(注意:这个电子邮箱并不需要真实的存在) git config --global user.email 9459@163.com  根据实际需要,有两种初始

    2024年02月11日
    浏览(36)
  • Sublime Text汉化,主打简单明了

    在Sublime中设置中文的步骤如下: 1.打开Sublime Text,使用快捷键Shift+Ctrl+P(MacOS下cmd+Shift+P),弹出查找栏。 2.在搜索框中输入\\\"install\\\",出现下拉选项,点击选择其中的\\\"Package Control: Install Package\\\"。 3.在搜索框中输入chinese,选择下拉框中的\\\"ChineseLocalizations\\\"。点击之后重启

    2024年02月10日
    浏览(40)
  • oracle 自定义函数(非常简单明了)

    1.举一个简单的例子 定义一个简单的函数,计算两数之和 函数的使用请继续往下看 2.举一个复杂的例子(虽然复杂,但是很实用) 1⃣️、定义函数的返回类型 创建 TYPE 类型 atrr_type 2、将 TYPE 类型 atrr_type 定义为表, 用做接收返回值 2⃣️、定义函数(这里介绍三种方式)

    2024年02月09日
    浏览(39)
  • oracle 自定义存储过程(非常简单明了)

    1.举一个简单的例子 定义存储过程 easyProcedure 入参为 两个数 出参为 他们的和 使用存储过程接着往下看 2.举一个复杂的例子(例子比较复杂,但很实用) ①创建 TYPE 类型 atrr_type ②将 TYPE 类型 atrr_type 定义为表, 用做接收返回值 ③定义存储过程 入参为 objt 出参为 一张表 ④

    2024年02月09日
    浏览(37)
  • 简单明了实现Java地图小程序项目

    💂 个人主页:苏州程序大白 💂 个人社区:CSDN全国各地程序猿 🤟作者介绍:中国DBA联盟(ACDU)成员,CSDN全国各地程序猿(媛)聚集地管理员。目前从事工业自动化软件开发工作。擅长C#、Java、机器视觉、底层算法等语言。2019年成立柒月软件工作室,2021年注册苏州凯捷智能科技

    2024年02月09日
    浏览(34)
  • Spring Boot集成WebSocket Demo,简单明了

    如果是初次搭建Spring Boot+WebSocket项目,不需要太复杂,只需要快速上手,那么你搜到的大部分文章可能都不适合你,我的这篇文章以最精简的方式搭建一个可以运行并通信的Spring Boot+WebSocket的Demo项目,有了根基之后再进行复杂化就不是难事了。 搭建Spring Boot项目都会吧,下面

    2024年02月09日
    浏览(41)
  • Idea连接MySQL数据库教程 (简单明了)

    方法① 在url连接路径后面加上参数键值对:serverTimezone=GML即可 方法② 也可点击Advance找到serverTimezone,设置其为GML 解决方法: 右键数据库 → 鼠标悬停Database Tool → 选择Manage Shown Schemas → 点击All schemas即可显示表。 如果大家有其他的问题也可以在评论区留言,记得点赞收藏

    2024年02月11日
    浏览(56)
  • Docker中,CMD 和 ENTRYPOINT 的区别,简单!明了!

    目录 CMD 和 ENTRYPOINT的区别:结论篇 CMD 和 ENTRYPOINT的其他细节结论 测试篇 一、 CMD的两种格式完全等效,但是ENTRYPOINT两种格式是有区别的 二、 docker run 命令替代了dockerfile的CMD命令 三、 docker run 命令在ENTRYPOINT的键值对格式下,是作为ENTRYPOINT命令的参数,docker run wx-centos ls -

    2024年02月05日
    浏览(42)
  • 升级php版本(简单明了,轻松升级php任意版本)

    1、查看当前php版本 2、查看当前所有php安装包 查看是否有你需要的版本,如果没有: 使用 Remi 存储库:Remi 存储库是一个第三方存储库,提供了广泛的 PHP 版本和扩展包。你可以按照以下步骤安装并启用 Remi 存储库: 3、查看是否升级

    2024年04月26日
    浏览(42)
  • 【最简单明了,萌新必备】eclipse连接navicat详细教程

    下载jdbc MySQL :: Download Connector/J 选择platform后下载第二个zip包,下载完毕解压文件 单独复制图中选中文件 打开eclipse,新建project新建包新建class文件 然后右键src文件夹如图选择paste 随后你会看到多出了个mysql-connector。。。的文件,再次右键单击多出来的那个文件,选择build-p

    2024年02月03日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包