问题标签 [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.

0 投票
1 回答
1313 浏览

objective-c - Objective-C 和 Objective-C++ 中静态成员的定义

我在编译objective-c源和objective-c++源时有区别。

这里是 test.h 中 Class1 和 Class2 的声明:

现在,这是 test.m 中的 Objective-C 实现:

我用这个命令成功编译:

现在我完全使用了这个 Objective-C++ 实现 test.mm (完全相同的来源):

并使用此命令行编译(-x 选项不同):

但我得到一个错误:

为什么我在 ObjC++ 而不是 ObjC 中得到这个错误?

0 投票
2 回答
4692 浏览

objective-c - 错误:在 Linux 上的 Objective-C 中编译时重新定义“struct StructName”消息

我正在尝试在 Ubuntu 12 Linux 上编译 Objective-C 代码。

main.m 看起来像这样:

在 CEFoo.h 中,我有以下定义:

当我去编译时

我收到这条消息:

我读过这可能是由于两次重新定义结构,或者在使用包含而不是导入时递归导入引起的。

仅显示定义的一次出现。

我还搜索了项目中的每个包含语句,并没有发现包含与导入的明显用途,或者 CEFoo.h 的双重包含/导入(包含多次定义/导入的结构的文件) .

我该如何进一步追查造成这种情况的原因?我假设我要导入它两次——如果是,有没有办法通过第一次定义的详细或日志来观看它?

我可以做些什么来解决这个问题?

TIA

0 投票
1 回答
9676 浏览

c++ - Winsock 重新定义错误

我正在用 Visual C++ 2010 编译一个项目,但我遇到了一些 Winsock 重新定义的问题。

首先我得到:

但是,如果我包含 winsock 或 winsock2 或 ws2tcpip 我会收到许多类似以下的错误:

0 投票
1 回答
454 浏览

tcl - 如何在 [incr-tcl] 中为类动态添加方法

在 Incr Tcl 中,我通过将类的方法更改并重新评估到正在运行的 Tcl 解释器中,从而提高了编程效率,而无需重新启动应用程序。为此,我必须使用主体语法定义类定义之外的方法,并将主体定义重新评估到正在运行的 Tcl 解释器中。这很好用。令人惊讶的是,显然是设计使然,在Incr Tcl中,

一个类只能定义一次,尽管类方法和过程的主体可以一次又一次地定义以进行交互式调试。

然而,在开发过程中,我很自然地将方法(重构)拆分为两个或多个附加方法,以便在同一个类中定义。

我想找到一种方法来强制将方法添加到正在运行的 Tcl 解释器中的现有类:

  1. 无需将类定义删除并重新评估到正在运行的 Tcl 解释器中,
  2. 无需重新启动包含要扩充的 Incr Tcl 类的现有对象实例的 Tcl 应用程序,并且
  3. 没有从所述 Tcl 解释器中删除现有对象的结果。

我只需要它作为开发/调试仪式,而不是生产代码(即,我不需要以编程方式动态添加方法)。我会接受黏糊糊的、邪恶的、后门的答案。更改 Incr Tcl 的生产副本以添加其他行为是不切实际的,因为不幸的是,我必须使用的 Incr Tcl 的二进制文件静态绑定到正在运行的进程中,并且无法通过某些共享库巫术卸载和重新加载。

0 投票
1 回答
1142 浏览

java - static method redefining rules

I know it is a pretty beaten topic here but there is something i need to clarify, so bear with me for a minute.

Static methods are inherited just as any other method and follow the same inheritance rules about access modifiers (private methods are not inherited etc.)

Static methods are not over-ridden they are redefined. If a subclass defines a static method with the same signature as one in the superclass, it is said to be shadowing or hiding the superclass's version not over-riding it since they are not polymorphic as instance methods.

The redefined static methods still seem to be following some of (if not all) of the over-riding rules.

Firstly, the re-defined static method cannot be more access restricted than the superclass's static method. Why??

Secondly, the return types must also be compatible in both the superclass's and subclass's method. For example:

In eclipse it shows an error at line at: The return type is incompatible with Test2.show() Why??

And Thirdly, are there any other rules that are followed in re-defining static methods which are same as the rules for over-riding, and what is the reason for those rules?

Thanx in advance!!

0 投票
8 回答
223 浏览

javascript - 理解 javascript 中的“|| {}”结构

可能重复:
“var FOO = FOO || {}”在 Javascript 中是什么意思?
Javascript - 你可以在变量声明中添加条件吗

我相信这与范围界定有关,而不是重新定义范围。我在流行的 javascript 框架中看到了很多这样的内容:

这与不意外地重新定义顶级变量有关吗?

0 投票
0 回答
1649 浏览

c++ - 使用不同类型 nsuinteger (aka unsigned int) vs cdvdestinationtype 重新定义 Typedef

我正在使用 Cordova,#import <Cordova/CDV.h>在我的项目中,我使用了另一个 C++ 风格的库,所以我的文件必须是*.mm.

问题是,当我编译时,出现以下错误:

此错误位于CDVCamera.h

似乎问题出在我混合了 Objective-C 和 C++ 的事实。

我该如何解决?

0 投票
2 回答
8476 浏览

c - 枚举和结构定义

使用代码块编译我的项目时出现错误。我的问题来自枚举定义和结构定义。

它们是在头文件中定义的机器人,因为我只在 .c 关联文件中使用那些枚举和结构,所以它起作用了。但是当我将 .h 文件包含在另一个 .c 文件中时,出现错误,这是一些代码;

地图.h

地图.c

所以这就是东西,当我在例如中包含 maps.h 时。game.c 或 game.hi 有此错误;

错误:“枚举属性”的嵌套重新定义

我不明白!

0 投票
1 回答
886 浏览

c++ - 编译 glm 时 OpenGL 重新定义错误与 Windows SDK 文件冲突

当我将一个模块(使用OpenGLand glm)(作为一个单独的程序测试和编译好的)添加到一个大程序中时。在项目中编译glm时出现错误:

我搜索了谷歌,在这里发现了类似的问题。答案说头文件序列有问题,但我不知道如何解决。

中的代码,glmtype_gentype.hpp中的代码。

enum中的重新定义部分c:\program files\microsoft sdks\windows\v6.0a\include\shlobj.h(3599)

0 投票
5 回答
13600 浏览

c++ - 重新定义模板在 C++ 中

我已经搜索并搜索了我的问题的解决方案,但我似乎找不到一个。我正在使用 Code::Blocks 并且收到模板类的重新定义错误。

这是我的“vectorAux.h”文件:

这是我的“vectorAux.cpp”文件:

这个程序的最终文件是“vectorDriver.cpp”,但是这个没有错误。这个只是通过调用函数来运行程序:

我真的很感激任何和所有的帮助/建议!我环顾四周,我发现的每个来源都说要保护头文件,但我已经这样做了,我的问题仍然存在。