gpt4 book ai didi

namespaces - 为什么 "using namespace System;"会导致缺少类型说明符?

转载 作者:行者123 更新时间:2023-12-04 16:58:03 25 4
gpt4 key购买 nike

我正在研究一个似乎一切都很好的“董事会”类(class)。不知何故,在其他类(class)上工作了大约一个小时后,Board 在错误方面表现出一些非常奇怪的行为。

//headerfile
#pragma once

using namespace System;

#include "stdafx.h"

ref class Board
{

public:
Board();
~Board();
void printToConsole();

private:
array<int^, 2>^ boardData;
};

我为此代码得到的错误是:
Error   1   error C2143: syntax error : missing ';' before 'using'  e:\users\felix\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\Board.h Line:4 Column:1    ConsoleApplication1 

Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int e:\users\felix\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\Board.h Line:4 Column:1 ConsoleApplication1

第 4 行是“使用命名空间系统;”谁能解释我做错了什么?
这看起来特别奇怪,因为我有另一个类“模式”,它看起来很像这样,但不输出任何错误。

编辑:

因此,正如你们中的一些人已经告诉我的那样,我在此之前包含的头文件中可能缺少分号。还有一个类似的问题,感谢您发布该问题;)
所以现在这是我的 stdafx.h(没有评论):
#pragma once
#include "Board.h"
#include "Pattern.h"
#include <string>
#include <iostream>

据我所知,当我用 VS 创建这个控制台应用程序时,这个 pragma 就在那里,所以在包括“B​​oard.h”之前似乎没有执行过任何东西。
我忽略了我所有的其他文件,除了这里,我从未在其他任何地方包含 Board...

编辑 2:

当我尝试进一步追踪错误时,我注意到缺少“使用命名空间系统;”在我插入的另一个类中。这导致了一个非常有趣的行为,因为当我也在 stdafx.h 中使用命名空间 System 时,错误现在位于 stdafx.h 中。如果我不这样做,错误将位于包含在 stdafx.h 中的第一个文件中
当我更改文件顺序时,第一个总是似乎缺少 ;在“使用”之前......奇怪的事情。

最佳答案

赫里卡!
错误在于 stdafx.cpp ,我觉得很奇怪,因为我不记得曾经编辑过它,但是,哦,好吧。

stdafx//.cpp : source file that includes just the standard includes
// ConsoleApplication1.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information

#include "stdafx.h"

如您所见,“stdafx”被解释为一个不完整的语句,其中包含一个类型说明符和一个 ';'丢失了,因此出现了两个错误。
正如评论中的每个人都已经正确告诉我的那样,错误通过包含到其他类而向下发送。并显示了第一行真正的代码行(不是指令)出现的地方。

该链的工作方式如下:
stdafx.cpp -> stdafx.h -> the first headerfile included in stdafx.h -> "using namespace System;"

无论如何,感谢您的帮助,否则我不会想到这一点:)

关于namespaces - 为什么 "using namespace System;"会导致缺少类型说明符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16223765/

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