gpt4 book ai didi

visual-c++ - 重新定义默认参数错误而不重新定义

转载 作者:行者123 更新时间:2023-12-02 11:09:33 25 4
gpt4 key购买 nike

我的 Visual Studio 2010 编译器出现一组奇怪的错误。

我得到的错误

error C2572: redefinition of default parameter
error C2011: 'class' type redefinition

我仔细检查过,我很清楚在函数定义中,我没有给出默认参数值,我只在头文件的函数原型(prototype)中给出了默认参数值。

另外,我非常确定没有两个类被赋予相同的类名。

请问谁能告诉我出现这些错误的其他原因是什么?

最佳答案

我没有得到它发生的确切原因,但我已经通过使用一些简单的技术克服了它。

我使用函数重载概念来避免默认参数列表。它会导致代码重复,但事实证明它非常有效。

所以像这样

void myFunction( int, char * = '\0', char * = '\0' );

会变成这样
void myFunction( int );
void myFunction( int, char * );
void myFunction( int, char *, char * );

在此示例中,代码被重复了两次,但似乎只能解决解决方案。

接下来,对于奇怪的类类型重新定义错误,我在许多文件中实例化了类变量。所以,我到处都删除了实例化的特性,并使用了类似这样的全局变量。

名为 myHeader.h 的文件
#include "myFile.h"
myClass myObj;

在所有其他文件中
#include "myHeader.h"
myObj.function1( );
myObj.function2( );

关于visual-c++ - 重新定义默认参数错误而不重新定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14578307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com