C++ cli 错误C2447、C2143、C2059:Basic Visual C++;类定义 我只是试图在VisualC++中创建一个类,但仍然要得到上面提到的三个错误:

C++ cli 错误C2447、C2143、C2059:Basic Visual C++;类定义 我只是试图在VisualC++中创建一个类,但仍然要得到上面提到的三个错误:,c++-cli,C++ Cli,第9行:错误C2447:'{':UIAutomationCPP.cpp中缺少函数头(旧式正式列表?) 第9行:错误C2143:语法错误:UIAutomationCPP.cpp中'{'之前缺少“” 第9行:错误C2059:语法错误:)”在UIAutomationCPP.cpp中 我的项目代码如下: //文件名:AutomationCPP.h #布拉格语一次 #ifndef AUTOMATIONCPP\U H #定义AUTOMATIONCPP\u H #包括“Stdafx.h” 使用名称空间系统;

第9行:错误C2447:
'{'
:UIAutomationCPP.cpp中缺少函数头(旧式正式列表?)
第9行:错误C2143:语法错误:UIAutomationCPP.cpp中
'{'
之前缺少“”
第9行:错误C2059:语法错误:
)”
在UIAutomationCPP.cpp中

我的项目代码如下:

//文件名:AutomationCPP.h
#布拉格语一次
#ifndef AUTOMATIONCPP\U H
#定义AUTOMATIONCPP\u H
#包括“Stdafx.h”
使用名称空间系统;
名称空间自动化
{
公共参考类CustomAutomationCPP
{
公众:
CustomAutomationCPP();
int优先;
私人:
int秒;
};
}
#恩迪夫
以及class.cpp文件:

//文件名:AutomationCPP.cpp
#包括“Stdafx.h”
#包括“AutomationCPP.h”
使用名称空间系统;
AutomationCPP::CustomAutomationCPP()
{
}

请帮帮我!我觉得如果我能克服这个问题,剩下的应该会容易得多。

构造函数是一个特殊的成员函数:

AutomationCPP::CustomAutomationCPP::CustomAutomationCPP()
{
}

除了Etienne's,我个人认为Etienne's更具可读性,因为它消除了成员们的一些噪音:

namespace AutomationCPP {

CustomAutomationCPP::CustomAutomationCPP()
{
}

void CustomAutomationCPP::foo()
{
}

// ...

} // namespace AutomationCPP

太棒了!!我以前从未使用过C++中的命名空间,更不用说Visual Studio了。这是一个开窍的方法,谢谢一百万!一个注释:构造函数不是函数(ISO14822003,第12节特殊成员函数[Stime]),而是“特殊成员函数”。。我认为这对初学者来说是一个重要的一点,这样才能避免误用构造函数调用。@Etienne:不是
特殊类型的
,只是
特殊成员函数
。这是一个官方术语:)就我个人而言,我只想说“您必须明确限定成员定义,例如,像这样:”@phresnel该标准有时可能会很挑剔。@Etienne:的确如此。但这种挑剔有时很重要;)我明白了,所以我会在cpp文件中定义名称空间,而不是头文件。听起来是个不错的建议!:)@Chef Phalan:您还必须将类的声明放在该名称空间中。例如:头:
名称空间foo{class X{X();};}
,源代码:
名称空间foo{X::X(){}
仅供参考,将预编译头
stdafx.h
包含到其他头文件中是不正确的形式。只将预编译头包含到源文件中。