问题标签 [redefinition]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gcc - 如何#define __forceinline 内联?
我有一些 Microsoft 代码 (XLCALL.CPP),我正在尝试使用 CodeBlocks/MinGW 进行编译。
在这一行我得到一个编译时错误:
这是我收到的错误消息:
XLCALL.CPP|36|错误:“void”之前的预期构造函数、析构函数或类型转换
预期会出现此错误,因为 __forceinline 是 Microsoft 对语言的特定补充,GCC 无法识别。
因此,为了编译,我尝试在 CodeBlocks(项目构建选项/编译器设置/#defines)中添加这些定义:
但是我仍然遇到同样的错误。
如果在对话框中我没有指定 #define 预处理器命令(即:)__forceinline inline
,这就是我得到的:
XLCALL.CPP|36|错误:数字常量之前的预期不合格 ID
有没有办法在不使用Visual C++的情况下编译这样一段代码?
c++ - 单个类有一个类重定义错误
我是 C++ 新手,头文件中的类定义有问题。头文件(Student.h)的代码是:
编译器错误表明第 14 行(学生类)是“学生”的重新定义,而第 15 行({——学生类后面的左大括号)是“学生”的先前定义。StudentSchedule 类存在前两行连续的相同错误。
我的编译中的任何地方都没有定义任何一个类的 .c、.cpp 或 .h 文件。我不知道为什么会收到此错误。
c++ - 覆盖具有不同返回类型的成员函数
考虑下面的例子:
编译器对上述代码给出了一个错误,即覆盖函数的类型存在冲突。为什么不能用不同的返回类型覆盖派生类中的函数?
我相信,为了重写一个函数,需要在派生类中重新定义基类虚方法。要重新定义方法,方法的签名必须相同。由于返回类型不是签名的一部分,我相信即使返回类型存在差异,方法仍然会被重新定义?func
在这种情况下,对于上面的代码,在派生类中用不同的返回类型重新定义了虚函数。但是编译器会抛出错误。我的理解正确吗?
c++ - 重新定义“类 GtkwidgetDef”
我真的不知道为什么我有这个重新定义错误
GtkwidgetDef.h
GtkwidgetDef.cpp
这两个函数只是定义和构造函数
MesFonctions.cpp
计算器.h
计算器.cpp
我想知道我是否在这行 GtkwidgetDef widgets(button); 中犯了错误
c++ - 重新定义或更改宏值
我目前正在开发一个用 MFC C++ 编写的已经开发的项目,并且面临一个已经存在的宏的问题,该宏具有以下定义:
我正在尝试从代码中更改值,但我认为由于它是一个预处理定义,我无法做到这一点。有没有一种方法可以解决这个问题,而无需整体更改原始宏(因为它可能会影响程序的原始功能)。我只是打算在一种特定条件下更改它,在其他任何地方都保持不变。
只是为了让大家知道,我显然已经尝试过使用不同的宏定义,我打算使用值 (17),但没有运气。
任何帮助将非常感激。
c++ - 在 C++ 类中初始化静态数据成员(类)
我正在尝试在父类中声明一个静态类并对其进行初始化,但我似乎遇到了各种错误。
我尝试过使用MainWindow::hWin = (MainWindow*) param;
andMainWindow::hWin = new MainWindow((MainWindow*) param));
和许多其他方法,但似乎都没有。这样做的正确方法是什么?有没有人会推荐关于这个主题的任何资源,我已经纠结class
了几天的问题并且非常沮丧。
c++ - 主类中的多个派生类的重新定义错误
我有一个 Object 基类,还有几个派生类,分别称为 Item、Person 和 Location。
因为它们中的每一个都是从 Object 派生的,所以我需要在它们的每个头文件中包含 Object.h,并且我在我的 main 中包含所有派生类。
因为我正在这样做,所以我收到了重新定义错误。
我想知道的是包含这些文件以避免此错误的正确方法是什么?
谢谢!
编辑:
对象.h
项目.h
语言环境.h
主文件
c# - 由 Babel Obfuscator 引起的 C++/CLI 中的重定义错误 (C2365)
当我混淆用 C# 编写的组件(带有自定义控件的 DLL)时。它适用于 C# 和 VB.NET 应用程序。
但是,当我使用 C++/CLI 应用程序中的 DLL 时,在构建过程中会出现这样的错误:
错误 C2365:“ComponentOwl::BetterSplitButton::BetterSplitButton::e”:重新定义;以前的定义是“财产”
“e”指的是内部枚举成员、私有属性名称等。
是否可以指示 Babel 混淆器不生成重复名称(我还没有找到这样的开关)。还是可以从代码中避免?
c++ - Overloaded functions, redefinitions, C2371 and C2556 C++
Ok so I've got 3 files:
definitions.h which contains
functions.cpp which contains
and the main programme contains:
But the I keep getting error C2371: redefinition; different basic types and C2556: overloaded function differes only by return type
everything i have found online says to make sure the function.cpp file isnt included in the main but as I haven't made that mistake I'm running out of ideas, especially seeing as all my other functions that are set up in the same way (with seperate definition and declaration) do work.
Any help would be great! Thanks H x
python - 在python中重新定义类方法
语境
我正在尝试在我的代码中添加一些“插件”(我不确定这是不是正确的定义)。通过“插件”,我的意思是一个模块,它定义了一个模型(这是一个科学代码),它的存在足以在代码的其他任何地方使用它。
当然,这些插件必须遵循一个模板,该模板使用我的代码中定义的一些模块/函数/类。这是我的代码相关部分的一小段代码:
这是“插件”的相关部分:
附加信息和要求
function1
对于任何模型插件都有完全相同的签名,但通常为每个插件做不同的工作。我想要一个默认行为,
function1
这样如果插件没有定义它,我仍然可以做一些事情(尝试不同的可能性,和/或引发警告/错误)。在插件中,
function1
可能会用到一些仅在本插件中定义的其他功能。我之所以这么说是因为代码与多处理模块一起运行,并且我需要能够调用子进程的instance
实例。在父进程以及模型插件中定义,但将在不同的子进程中使用(虽然没有对其进行修改)。AllModels
function1
instance
真棒
function1
,当插件“重新定义”时,能够访问Model
实例的属性(即。self
)。
问题
我已经阅读了许多不同的 python 文档来源和一些 SO 问题。我只看到这个问题的两个/三个可能的解决方案:
1)不在类中声明function1
方法Model
,而是在插件创建它的新实例时将其设置为属性。
然后在需要时调用它。在那种情况下,function1
对象中的属性可能Model
会被初始化None
。一个警告是没有“默认行为” function1
(它必须在代码中处理,例如 testing if instance.function1 is None: ...
),更大的一个是我无法self
以这种方式访问......
2)以某种方式使用python装饰器。我从来没有使用过这个,而且我读过的文档并不是那么简单(我的意思是不直接,因为它的使用可能性很大)。但这似乎是一个很好的解决方案。但是我担心它对性能的影响(我已经读过它可能会减慢装饰函数/方法的执行速度)。如果这个解决方案是最好的选择,那么我想知道如何使用它(可能是一个快速的片段),以及是否可以使用类的属性Model
:
3)使用模块types
及其MethodType
......我不确定这是否与我的情况相关......但我可能是错的。
在这个长长的问题之后你可能会看到,我对这些 python 特性不是很熟悉,而且我现在对装饰器的理解真的很差。在继续阅读一些文档的同时,我认为可能值得在这里提出这个问题,因为我不确定为了解决我的问题而采取的方向。
解决方案
Senderle 答案的美妙之处在于它非常简单明了......错过了它是一种耻辱。很抱歉用那个问题污染了 SO。