c++如何定义全局对象,(非内置类型)

问题描述

c++如何定义全局对象,(非内置类型)
我想定义一个全局的对象供多个源文件使用
按道理,在一对源文件和头文件中分别定义和extern声明,在要调用该全局对象的源文件中包含之前的头文件即可。但是编译出错:无法解析的外部符号。但是用同样的方法定义一个全局的内置变量确实可以的。希望高手解答。

解决方案

是可以的,是我太粗心大意了,把变量名搞错了,最最低级色错误。

解决方案二:
最好不要在多个源文件之间共享全局对象,这样很难保证唯一性。你应该是通过方法来封装全局对象。可以考虑单例方式,然后用它的成员变量

解决方案三:
应该是可以的啊,不知道LZ用的是什么IDE

解决方案四:
从你的描述看不出问题,建议把代码贴出来啦

解决方案五:
在比较大的项目中尽量不要用全局变量。控制不好会出问题

时间: 2024-10-28 22:48:22

c++如何定义全局对象,(非内置类型)的相关文章

c++-在一个.cpp中定义ofstream全局对象和不定义,程序跑出的结果不一样

问题描述 在一个.cpp中定义ofstream全局对象和不定义,程序跑出的结果不一样 求助:c++ 程序 在一个.cpp中定义ofstream logFile("a.txt")和不定义(只是定义与不定义) 程序跑出的结果不一样 这是个什么bug ? 解决方案 不定义是什么意思?不定义logfile吗,不定义的话用什么操作文件

php扩展中如何定义线程安全的全局对象

传统的php裁剪类只能按位置裁剪.如按中间位置裁剪.这种裁剪方式可能会导致一个人被截成两段.为了解决这个问题,最近开发了一个php扩展(tclip),能自动识别人脸或者图像中其它重要区域,然后进行裁剪.裁剪效果如下: 原图: <img src="http://www.bo56.com/wp-content/uploads/2013/07/a1.jpg" alt="a1" width="500" height="772"

c++-求大神,关于CString的问题.我定义了一个CString的全局对象GetPath

问题描述 求大神,关于CString的问题.我定义了一个CString的全局对象GetPath 我定义了一个CString的全局对象GetPath 上一步GetPath的值为"C:windowsuser" 然后我GetPath+="data.txt"; GetPath的值怎么变成了"data.txt"而不是"C:windowsuserdata.txt" PS: GetPath我是定义在另一个源文件中的 解决方案 MSDN中的例

C++内置类型选择和使用总结

C++内置类型选择和使用的注意事项 (1)类型选择 ①当明确知道数值不可能为负时,用unsigned类型. ②对于整型,要么用int,要么用long long.short一般过小,当然,如果明确数据不会超过两字节,自然可以用,而long在许多编译器下和int等长.long long是C++11的新类型,是8字节的int. ③尽量使用signed char或unsigned char,而避免使用char.因为char在有些编译器下是无符号的,而在有些编译器下是有符号的. ④浮点运算用double.

浅析JavaScript中两种类型的全局对象/函数_javascript技巧

这里所说的JavaScript指浏览器环境中的包括宿主环境在内的.第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数. 一.核心JavaScript内置对象,即ECMAScript实现提供的不依赖于宿主环境的对象 这些对象在程序执行之前就已经(实例化)存在了.ECMAScript称为The Global Object,分为以下几种 1, 值属性的全局对象(Value Properties of the Global Object).有NaN,

JavaScript中的全局对象介绍_javascript技巧

对于任何JavaScript程序,当程序开始运行时,JavaScript解释器都会初始化一个全局对象以供程序使用.这个JavaScript自身提供的全局对象的功能包括: 1.全局对象拥有一些常用的属性值.比如undefined.Infinity以及NaN. 2.全局对象拥有一些常用的属性对象.比如Math.JSON和Number对象均为该全局对象的属性. 3.全局对象提供一些全局函数供调用.比如isNaN().isFinite().parseInt()和eval()等. 4.全局对象提供一些全局

Nodejs学习笔记之Global Objects全局对象_node.js

一,开篇分析 在上个章节中我们学习了NodeJS的基础理论知识,对于这些理论知识来说理解是至关重要的,在后续的章节中,我们会对照着官方文档逐步学习里面的各部分模块,好了该是本文主角登台亮相的时候了,Global 让我们来看一下官方的定义: Global Objects全局对象These objects are available in all modules. Some of these objects aren't actually in the global scope but in the

Flash AS学习:new LoadVars定义传值对象

对象 功能说明 定义传值对象.可以使用此对象的各个Method来传送与接收数据.可以在数据下载的过程中,取得一些信息,包括:错误信息.进度确认以及流信息.LoadVars对象的作用与XML对象里部分Method的作用极为相似,最大的不同在于LoadVars对象是以数据对(Name And Value Pairs,意即变量名称与内容)的方式传输数据,而XML对象则是以DOM(Document Object Model)树的方式传输数据. 语法 myLoadVars= new LoadVars();

ASP.NET中Application全局对象用法实例浅析

 本文实例讲述了ASP.NET中Application全局对象用法.分享给大家供大家参考.具体如下: Application是应用全局对象,被全体共享.无论通过哪个页面操作Application,另一个页面都可以读取Application信息. 由于Application是共享的,操作之前先Lock,操作完成后UnLock. 在一个页面设置数据: 1 2 3 Application.Lock(); Application.Set("address", "上海");