问题标签 [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 投票
4 回答
1155 浏览

c++ - C++ 重新定义 - 头文件

我是 C++ 的一个完整的初学者,对你来说似乎很愚蠢的事情我就是无法理解。

测试应用程序.h

主文件

错误信息:Redefinition of 'Testapp::Testapp()'

猜测它定义了两次构造函数,虽然我不确定如何克服这个问题。我正在使用 DEV-C++。

0 投票
7 回答
1688 浏览

c++ - 如何在保持其功能的同时绕过标准 C++ 函数

我正在寻找一种方法来重新定义一组 POSIX 函数,然后通过调用原始函数来结束重新定义。这个想法是我正在尝试创建一个层,该层可以根据哪个“配置文件”处于活动状态来限制可以调用哪些 OS API。此“配置文件”确定允许使用哪些功能集,并且不应使用任何未指定的功能。

例如,如果在一个配置文件中我不允许使用 strcpy,我希望能够导致编译时错误(通过 static_assert)或在屏幕上打印一些内容“此配置文件中不允许使用 strcpy”,例如以下:

MY_string.h

所以在 main.cpp 中我可以使用 MY_string.h

现在我意识到由于 strcpy 的重新定义,我上面编写的代码将无法正确编译,但是有没有办法在不使用宏或创建我自己的标准 c 和 c++ 库的情况下允许这种功能?

0 投票
1 回答
518 浏览

c++ - 我应该如何处理 C++ 中的类重定义错误?

缺席后,我目前正在从事一个 c++ 项目,似乎我忘记了一些可以让我的代码正确编译的语法或方法。在尝试设置我的环境后,我遇到了重新定义错误,当然,我并不打算通过这些错误。

编译时报错如下

我不相信我正在重新定义 foo 在我的空间中;我知道这是使用我定义的 foo.h 头文件的结果。

这是我正在编译的代码

我应该如何设置我的头文件或 cpp 文件来解决这个问题?

0 投票
1 回答
1900 浏览

c++ - C++ Redefinition Error

I have searched for an answer to this question and tried the solutions suggested. Namely #pragma once and #ifndef/#endif. They haven't worked for me.

The problem I'm having is that every single function in my code is being defined multiple times. I have used #pragma in an attempt to reduce header inclusion to a single time, and I as a general practice I always include the #ifndef/#endif in my header files. Neither fix works and I suspect it's due to the way the makefile is written, which is also included below.

This is the error output I'm receiving upon compiling:

(And so forth, for every function defined in the implementation file below.)

Header file (Cannot be modified):

And here is my implementation file (CAN be modified):

Also, here is my makefile. I have a feeling this is where the problem is, but after an hour of reading makefiles aren't any more obvious to me.

And my main.cpp, which is only there right now to make the compiler happy:

0 投票
3 回答
3601 浏览

c++ - C ++,具有方法和枚举类型的类-方法和枚举值可以具有相同的名称吗?

我有以下课程:

类的问题在于,open名称既被定义为类内部方法的名称,又被定义为枚举类型的值。

问题是:我可以以某种方式修改代码,以便两个名称都可以在类内部工作,还是应该为方法或枚举类型值open选择其他名称?open()open

这是open()函数的样子:

0 投票
4 回答
175 浏览

c++ - 分离到 .h/.cpp 后重新定义类

我知道这是一个关于 C++ 的常见问题,但是按照其他答案等的建议,我仍然无法让我看似简单的代码工作。我的问题是以下代码给出了“错误:'class Communicator'的重新定义”:

全局.h

全球.cpp

有谁知道为什么会出现这个错误?.cpp 包含标头。我还有其他 .cpp 文件也包含标题,但是对于警卫,我不明白为什么这很重要。

感谢您对此的任何帮助,非常感谢。

编辑:另外,我的 runner.cpp 文件(带有 main)包括 global.h 以便访问通信器全局对象。

0 投票
1 回答
374 浏览

yacc - 我如何在例程中编译两个或多个 lex 文件

现在我要解析php文件,asp文件或者jsp文件,lex_php.l yacc_php.y用来解析php文件,lex_asp.l yacc_asp.y用来解析asp文件,

然后我有main,main将通过输入类型调用不同的解析

但是当编译和链接它们时,输出重新定义错误,我该怎么办?像这样的生成文件

我认为,yacc_asp.o 和 yacc_php.o 都包含 yyparse、yytext 和 mamy 其他相同的功能,所以可能输出重新定义错误。

但是如何解决这个问题,帮帮我,非常感谢

0 投票
3 回答
181 浏览

c++ - Redefiniton of an int error

I'm teaching my self C++ on the side and i realize this question may seem remedial to some. In the game I'm making as part of the learning process I want the user to be able to pick a difficulty and when they pick one or the other the random number value range changes. The compiler I'm using is x-Code by the way. Here is the code:

The 2 errors occur in case 2 and 3 where i try to redefine the value of secretNumber.

0 投票
1 回答
163 浏览

c++ - 为什么非常量静态成员会有多个定义?

C++ 强制程序员在类外部定义一个非常量静态成员,而我一直看到的原因是,如果在类内部定义了静态成员,这将导致静态成员的多个定义。我知道对静态成员有多个定义是不好的,但我不明白这些多个定义甚至来自哪里。初始化的非常量静态成员不应该只进入数据部分并且这是唯一的定义吗?

另外,我在另一个 stackoverflow 帖子中读到 const 静态成员只是简单地内联到使用它的代码中: 为什么我不能在一个类中有一个非整数静态 const 成员? 这是由预处理器与所有其他指令一起处理的吗?(如果需要,我会在另一篇文章中问这个问题,但我不确定它是否值得单独发一篇文章)。

0 投票
2 回答
4272 浏览

c++ - 类重定义错误 C++

我遇到了类重新定义错误的问题。我得到了一个文件“Arraylist.cpp”和“Arraylist.h”。奇怪的是,讲师在 Arraylist.cpp 中包含了 Arraylist.h 标头保护作为

对我来说这是有道理的,尽管它真的很奇怪。现在我有一个 Stack 和一个 Queue 类,它们都从 Arraylist 继承,并且有 .cpp 和 .h 文件以及下面列出的适当的标头保护

在另一个类中,我同时包含了 Stack.h 和 Queue.h。在编译时,我在 Arraylist.cpp 上收到“类重新定义错误”。现在,如果像任何普通人一样将标头保护从 Arraylist.cpp 移到 Arraylist.h 中,我不会收到任何错误,并且一切正常。问题在于我们根本不允许修改讲师代码的作业,所以有什么办法可以解决这个问题,或者我应该告诉教授他应该重新考虑在他的 .cpp 文件中包含标题保护吗?