未声明的标识符 我正在使用.NET的C++应用程序,我遇到了一个我似乎无法解决的问题。我正在尝试实现一些控制器类。顶部区块是my.h文件,底部区块是.cpp文件。我得到的错误是: 'ComposeMail' : undeclared identifier 'email' : undeclared identifier syntax error : identifier 'ComposeMail'
我的include语句几乎不起作用 标题:未声明的标识符 我正在使用.NET的C++应用程序,我遇到了一个我似乎无法解决的问题。我正在尝试实现一些控制器类。顶部区块是my.h文件,底部区块是.cpp文件。我得到的错误是: 'ComposeMail' : undeclared identifier 'email' : undeclared identifier syntax error : identifier 'ComposeMail',.net,c++-cli,.net,C++ Cli,我的include语句几乎不起作用 标题: #pragma once #include "ComposeMail.h" class MainWindowController{ public: MainWindowController(void); void ComposeClick(void); }; 实施: #include "StdAfx.h" #include "MainWindowController.h" MainWindowController::MainWindowC
#pragma once
#include "ComposeMail.h"
class MainWindowController{
public:
MainWindowController(void);
void ComposeClick(void);
};
实施:
#include "StdAfx.h"
#include "MainWindowController.h"
MainWindowController::MainWindowController(void)
{
}
void MainWindowController::ComposeClick(void){
ComposeMail^ email = gcnew ComposeMail();
}
如果没有ComposeMail.h中的ComposeMail代码,我们就无法真正回答
编译器说ComposeMail尚未声明,因此您必须检查include以查看它丢失的位置,可能是因为宏fu,也可能是因为某个地方的键入错误。好的,我找到了……我的ComposeMail代码构造函数位于我们项目的名称空间Firemail名称内,因此我必须编写 使用名称空间FireMail;
在我的.h文件中。这起作用了。感谢您的回答。您需要发布ComposeMail中的内容。不要将使用命名空间的内容放在头文件中。不赞成使用名称空间指令。相反,为类添加前缀:FireMail::ComposeMail^email=gcnewfiremail::ComposeMail;。这通常也会增加可读性。如果确实要使用using指令,请将其放在.cpp文件中,以便不影响包含标头的其他源文件。最后,您可以使用另一种using指令:usingfiremail::ComposeMail。这只将一个类移动到当前命名空间中。感谢您的建议。我一定会这么做的。