Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;类的声明错误_C++ - Fatal编程技术网

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!
  };