C++ 和 Visual Studio 2017:错误 c4430 [重复]

Posted

技术标签:

【中文标题】C++ 和 Visual Studio 2017:错误 c4430 [重复]【英文标题】:C++ and visual studio 2017: error c4430 [duplicate] 【发布时间】:2017-11-25 05:57:38 【问题描述】:

我正面临一个非常愚蠢和令人愤怒的问题,我正在观看一个关于如何制作 roguelike 的视频,在知道如何将关卡打印到屏幕上并实际开始编码后,我决定停下来,然后我遇到了多个错误在完美的代码上,我责备了构造函数,所以我决定在 Visual Studio 上创建一个新项目来测试最愚蠢的情况,一个主要功能,一个类,一个构造函数什么都不做,我离开了制作类的所有工作和 Visual Studio 的构造函数,我仍然遇到了该死的问题,这是代码简化版本的错误,我会显示类似流氓的代码,但我必须自己将错误翻译成英文,而且大多数都有与实际错误无关,因为他们主要抱怨丢失;在不应该有的地方;或者已经有一个了。

here's the code
    main.cpp:
    #include "stdafx.h"

    int main()
    
    return 0;
    
    test.h
    #include "stdafx.h"

    class test
    
    public:
    test();
    ;
    test.cpp
    #include "test.h"
    #include "stdafx.h"

    test::test()
    

然而,有了这个简单的自动生成代码,visual studio 仍然抱怨并给我这个错误消息

c4430 缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int

c2653 'test' : 不是类或命名空间名称

'test' : 函数应该返回一个值; 'void' 假定返回类型

我该怎么办?

【问题讨论】:

` #include "test.h" #include "stdafx.h"` 颠倒顺序? 编译器假定直到#include "stdafx.h" 之前的所有内容都已预编译,因此不会再次编译。在订购#includes 时,您必须考虑到这一点。 【参考方案1】:

如果你的函数返回不是 void,你必须明确定义返回类型并返回该类型的值。否则你会得到那个错误。

class A

    int int_func();
    void void_func();
;

int A::int_func()

    return 0;

void A::void_func()

    // No return;

【讨论】:

以上是关于C++ 和 Visual Studio 2017:错误 c4430 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2017 中创建 Visual c++ MFC 控制台项目

Visual Studio 2017 15.5 打破 C++ TypeDefs

Visual Studio 2017 c++ win32 控制台项目模板

在 Visual Studio 2017 中使用 64 位 Visual C++ 工具集

如何在 Visual Studio 2017 中创建 C++ Windows 桌面应用程序?

Visual Studio 2017 c++ win32 控制台项目模板