gpt4 book ai didi

c++ - 错误 "this declaration has no storage class or type specifier"

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:50 28 4
gpt4 key购买 nike

我正在使用 Visual Studio 编写我的第一个应用程序,但我不理解它向我显示的错误。

有两个文件,Session 和 Login。 Login使用Session的set和get函数。正如您在下面看到的,Login 调用“setCurrentLang”,这是 Visual Studio 在 Login.cpp 上显示的消息:“此声明没有存储类或类型说明符”。如果我编译,这就是错误:

"Error 26 error C2365: 'setCurrentLang' : redefinition; previous definition was 'function' (....)\GUI\Login.cpp".

这是 Session.cpp 文件:

#include "Session.h"
const char* CURRENT_LANG;
void setCurrentLang( char* lang){
CURRENT_LANG = strdup(lang);
}
const char* getCurrentLang(){
return CURRENT_LANG;
}

session .h

#ifndef __SESSION_H__
#define __SESSION_H__

#include <cstring>
#include <stdio.h>

void setCurrentLang( char* lang);
const char* getCurrentLang();

#endif

登录.cpp

#include "Login.h"
#include "../data/Session.h"

setCurrentLang("English");

非常感谢您的帮助!

最佳答案

您在任何上下文之外调用该方法。这不可能。如果你想在开始时设置语言,你可以在 main 的开头调用它,或者使用一个在其构造函数中调用它的虚拟静态类:

static class LanguageSetter
{
public:
LanguageSetter()
{
setCurrentLang("English");
}
} dummy;

或者简单地在 CURRENT_LANG 的定义中设置默认值:

// std::string because this is C++, not C
std::string CURRENT_LANG = "English";

关于c++ - 错误 "this declaration has no storage class or type specifier",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28473865/

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