转发请注明出处
CVarSystem是用来方便管理控制台变量的。其中核心类有idCVar类
与 idCVarSystem。 其中idCVarSystemLocal实现了idCVarSystem类。
声明一个idCVar对象即声明了一个控制台变量,例如:
idCVar my_var("myval0");
但是想象一下,当我们在程序中多处使用一个变量的时候,若我们把我们
所要的数据塞到idCVar类里的话。那么就会出现歧义。也就是有可能出现同名
的变量在多个不同的地方被声明,并且值不同。idCVar类应用了Proxy(代理模式)
这种设计模式。idCVar并不直接持有变量的值。而他通过一个叫intenalVar的
成员变量,而该成员变量同样指向一个idCVar对象。访问idCVar变量的函数都
通过调用intenalVar的同名函数获得。也就是说真正持有数据的intenalVar所指向
的指针。而intenalVar在初始化后会被指向一个idInternalCVar的对象。该
idInternalCVar类继承自idCVar类。在初始化idCVar时会自动在idCVarSystemLocal
控制台变量系统中注册自己。若当前类没有被分配一个internalVar 该 idCVarSystemLocal
会为其分配一个。若看到声明该控制台变量的名称已经在系统中存在同名的internalVar
则让该变量指向这个已存在的idInternalCVar变量。并且尝试更改其值。这种
感觉有点类似于只能指针。你可以向以下方式声明变量:
在某个函数中:
void func1(){
...
idCVar("myval0" , "0" , CVAR_INTEGER , "my frsit val");
...
}
在另一个函数中:
void func2(){
...
idCVar("myval0" , "123" , CVAR_INTEGER , "my val");
...
}
在两处声明的同名控制台变量指向的是一个idInternalCVar对象!

Doom3 CVarSystem分析相关推荐

  1. doom3 源代码评测 1

    原文地址 http://fabiensanglard.net/doom3/ 2012年6月8日 DOOM3源代码评测:简介(第1部分,共6部分)>> 2011年11月23日,id软件保持传 ...

  2. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

    目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...

  3. 2022-2028年中国自动驾驶系统行业现状调研分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国自动驾驶系统行业市场行业相关概述.中国自 ...

  4. 2022-2028年中国阻尼涂料市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国阻尼涂料行业市场行业相关概述.中国阻尼涂 ...

  5. 2021-2028年中国阻燃装饰行业市场需求与投资规划分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国阻燃装饰行业市场行业相关概述.中国阻燃装 ...

  6. 2022-2028年全球与中国漂白吸水棉市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国漂白吸水棉行业市场行业相关概述.全 ...

  7. 2022-2028年全球与中国青苔清洗剂市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国青苔清洗剂行业市场行业相关概述.全 ...

  8. 2022-2028年全球与中国氢碘化物市场智研瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国氢碘化物行业市场行业相关概述.全球 ...

  9. 2022-2028年全球与中国人字拖市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国人字拖行业市场行业相关概述.全球与 ...

  10. 2022-2028年全球与中国乳胶丝市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国乳胶丝行业市场行业相关概述.全球与 ...

最新文章

  1. MLIR算子量化Quantization
  2. 阿里云首席科学家闵万里:我们为什么敢挑战一百年的制度,因为黑科技能为挽救生命抢来50%的可能性
  3. 盯住未来!揭秘英特尔的AI芯片生意
  4. JAVA日期加减运算
  5. 脑科学助力人工智能,离不开大数据
  6. ubuntu 21.04安装OBS Studio录屏软件
  7. osgEarth使用没有DX的Triton库Triton-MT-DLL-NODX.lib
  8. Spring工作原理分析
  9. AgileConfig轻量级配置中心1.3.0发布,支持多用户权限控制
  10. 线性代数 —— 线性基与前缀线性基
  11. c++byte数组和文件的相互转换_经常对文件相互转换,全能转换工具,解决办公中遇到的所有难题...
  12. maven多模块项目,多web合并项目使用心得
  13. 【米课】思维导图与深度思考
  14. 【人脸识别】基于matlab GUI Gabor+SVM比较PCA+SVM人脸识别【含Matlab源码 685期】
  15. 2023年南开大学税务专硕考研上岸前辈备考经验指导
  16. 黎曼Zeta函数,人类文明永恒的纪念
  17. vue3生成二维码打印
  18. 【漫漫转码路】Day 38 C++ day09
  19. 星淘惠:阿拉山口跨境电商班列为跨境电商保稳提质助力
  20. 北邮在线计算机,北邮在线圆我IT梦

热门文章

  1. 二十一世纪大学英语读写教程(第四册)学习笔记(原文)——2 - The Gratitude We Need(我们所需要的感激)
  2. ugui 转轮_Unity3D的FingerGesture插件
  3. 股票涨或跌为什么?看懂本质,才能顺势而为!
  4. 虚拟机上的hadoop localhost:8088,localhost:50070均不能访问
  5. 2022年虾皮开店(shopee入驻)最新教程!
  6. L3-001 凑零钱 (30 分)——01背包+路径记录
  7. 程序员刚入职一周,有公司又开了更高薪资的offer,怎么办?
  8. macOS Monterey 12.1 (21C52) 正式版 ISO、IPSW、PKG 下载
  9. Python中Round函数:怎么解释?怎么用?
  10. Serialization和Deserialization