jjzjj

C++ static , extern 与全局数据一起使用

总的来说,我是C++和OOP的新手,一直在努力学习高效或“正确”的做事方式,但仍然遇到问题。我正在创建一个DataStore类来保存其他类/对象的数据。此类永远只有一个实例/对象;但是,实际上并不需要对象/实例,因为它是全局数据,对吧。在这种情况下,我觉得这只是提供范围的一种方式。所以,我想直接更改类成员而不是传递对象。我读过有关static和_extern的内容,但我无法决定两者是否可行,或者是否还有其他更好的方法。现在我正在传递一个创建的对象来改变它的数据,但我宁愿这个类被作为“它自己”而不是“它自己的一个实例”来访问,同时仍然保留它是一个对象的想法.

c++ - MVS2015 使用 SDL2 不断给出 "unresolved externals"错误

我试图让SDL与我的MVS2015一起工作,但到目前为止没有成功,我真的想让它工作,所以我将解释我所做的每一步。首先,我从SDL安装指南下载了预构建SDL2库:https://wiki.libsdl.org/Installation,然后解压。在MVS2015中创建一个新的控制台应用程序,打开项目属性页面并正确设置“包含目录”,我检查了三次,也为“库目录”做了这个。然后我转到“链接器”->“输入”并将SDL2.lib添加到“附加依赖项”。到目前为止一切顺利,我的代码现在应该可以与SDL一起使用了吧?我做了一个简短的主要测试它是否有效:#includeintmain(){SDL_Init

c++ - 如何在 C++ 的构造函数中定义一个 extern const

两个config.json文件包含我想要存储到常量中的值。我的计划是在相应类的构造函数中加载并解析json文件,并将值赋值给常量。但是,在Debug模式下,出现“...LNK2019:unresolvedexternalsymbol...”的错误。那么,是不是不能在构造函数中定义常量呢?由于常量的值取决于变量VARIANT,我创建了一个ifelse来读取正确的.json文件。//constants.hexternconstintBARL;externconstintBAR_TOL;//constants.cppConstants::Constants(){Json::Readerrea

iphone - extern 在 Objective-C 中做了什么?

如果您在一个Objective-C文件中使用extern一个C++方法(而不是一个变量),这到底有什么作用?它允许你做什么?尤其是在iPhone应用程序的上下文中。 最佳答案 它允许您调用位于C文件外部的方法 关于iphone-extern在Objective-C中做了什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4166538/

c++ - 错误 LNK2019 : unresolved external symbol "" referenced in function

我目前在编译代码时遇到以下错误:errorLNK2019:unresolvedexternalsymbol"public:void__thiscallAgent::printSelf(void)"(?printSelf@Agent@@QAEXXZ)referencedinfunction"public:void__thiscallWorld::processMouse(int,int,int,int)"(?processMouse@World@@QAEXHHHH@Z)World.obj这是我的代码代理.h:classAgent{public:Agent();voidprintSelf(

c++: "double free or corruption"用于全局外部变量?

我有兴趣在整个程序中只使用一个全局变量。所以我认为实现这一点的最好方法是像这样在头文件中定义它:externconststd::stringCONST_STR="globalstring";但这导致了“双重释放或损坏”运行时错误。删除extern使问题消失。谁能解释一下这种行为?AFAIK,如果没有extern定义,每个翻译单元都会有一个CONST_STR,难道没有办法获得一个完全const的全局变量吗? 最佳答案 解决第一部分和有关丢失extern的其他问题。conststd::stringCONST_STR="globalstr

在运行时定义的 C++ 全局 extern 常量可跨多个源文件使用

我有一个要在运行时定义的整数常量。此常量需要在全局范围内和跨多个源文件可用。我目前有以下简化情况:ClassA.h声明externconstintsomeConstant;ClassA.cpp用途someConstant在某一点。Constants.h声明externconstintsomeConstant;main.cpp包括ClassA.h和Constants.h,声明constintsomeConstant,以及在main()期间的某个时刻尝试初始化someConstant到运行时的实际值。这与char*完美配合我用来让程序的名称在所有文件中全局可用的常量,它的声明和定义与我在这

c++ - 无法访问外部文件中定义的数组,W/O 关键字 "extern"

我发现无论如何,我都无法访问在外部文件中定义的数组。所以我在C和C++中做了一些像这样的简单测试:在C中:主.c#include#include#includeintfunc();chararr[100]="";intmain(){for(inti=0;i函数.c#include#includeexternchar*arr;intfunc(){strcat(arr,"hello");//trytoaccessarrherereturn0;}在C++中:主要.cpp#includeusingnamespacestd;intfunc();chararr[100]="";intmain(){

c++ - 错误 LNK2019 : unresolved external symbol

好的,所以我在尝试找出代码中的问题时遇到了问题。我有很多代码,所以我只会发布编译时出现问题的相关部分。我在一个类中有以下函数,它会编译并且一切都会正常运行,直到我调用函数“CalculateProbabilityResults”并在其中运行第7行代码。我已经在我的程序中“取消注释”了这行代码,这样您就可以更容易地找到它。我很确定我有正确的#include指令,因为它在不调用函数时编译得很好,所以这不是问题,不是吗?我知道我的一些命名符号需要一点帮助,所以请多多包涵。在此先感谢您的帮助。intSQLServer::CalculateProbabilityResults(intprofil

c++ - 在 Objective-C 代码中使用 extern "C"的链接器错误

我正在尝试创建一些可以从iPhone应用程序中的Objective-C和C++代码调用的实用函数。我有无法编译为ObjectiveC++(.mm)的第三方C++类。我有一个声明我的函数的头文件,然后是一个定义它们的.c文件。我已经检查了三次拼写错误,但出于某种原因,我的链接器无法找到任何函数的定义。这是C辅助函数的header:#ifndefFILE_LOADER_H#defineFILE_LOADER_H#if__cplusplusextern"C"{#endifvoid*loadDataFromFile(constchar*szFilename,boolbDocument);voi