C++ c++;类的声明错误
我有一个包含多个函数的结构C++ c++;类的声明错误,c++,C++,我有一个包含多个函数的结构info。其中一个函数是info combineInfo,它接受两个参数(两组信息) 在main中,我使用构造函数将所有内容输入到info1和info2中,这些内容都很好。但是,从main调用combineInfo(info1,info2)时,我遇到了一个死胡同。我收到消息“错误:combineInfo未在此范围内声明。” 函数如下所示: Info Info::combineInfo(Info1, Info2); // sets some values of info1
info
。其中一个函数是info combineInfo
,它接受两个参数(两组信息)
在main
中,我使用构造函数将所有内容输入到info1和info2中,这些内容都很好。但是,从main
调用combineInfo(info1,info2)
时,我遇到了一个死胡同。我收到消息“错误:combineInfo
未在此范围内声明。”
函数如下所示:
Info Info::combineInfo(Info1, Info2); // sets some values of info1 to info3 and some of info2 to info3.
该功能应为:
class Info{
static Info combineInfo(Info info1, Info info2) {
//implementation
}
//the rest of the class implementation!
};
由于它是一个成员函数,因此需要范围解析运算符:
info3=Info::combineInfo(info1,info2)代码>这就是你怎么称呼它的
当前的实现期望combineInfo
在全局范围内,而它在类(成员函数)内-因此出现了错误 使用
信息::combineInfo(信息1,信息2)
您不能直接访问外部的成员函数。您需要使用范围解析运算符::或。访问它。给出发生错误的代码片段,包括结构/类定义。发布代码和编译错误要比用这么多词来描述问题容易得多。@Nawaz--我觉得发布500多行代码不合适。我会添加更多的细节,谢谢。你可以发布相关的代码,至少是声明。错误消息通常不超过500行。combineInfo
是info
的非静态成员函数吗?根据构建消息,这里没有对象是有意义的。(不使用静态时)如果您可以发布combineInfo
的代码,我们可以解决此问题@帕特里克诺门
Info Info::combineInfo(Info1, Info2); // sets some values of info1 to info3 and some of info2 to info3.
class Info{
static Info combineInfo(Info info1, Info info2) {
//implementation
}
//the rest of the class implementation!
};