类的c ++声明错误

时间:2013-03-12 06:23:22

标签: c++

我有一个具有多个功能的结构info。其中一个函数是info combineInfo并且接受两个参数(两组信息)。

Info combineInfo(info1, info2);

main中,我使用构造函数将所有内容输入到info1和info2中,并且所有内容都很好。但是,从combineInfo(info1, info2)致电main时,我正陷入死胡同。我收到消息“错误:combineInfo未在此范围内声明。”

Info info1; //this is from a constructor that inputs all the values from cin.
Info info2; // ^^
Info3 =  combineInfo(info1, info2;
info3.printinfo(); // constructor from class, works fine.

该功能如下所示:

Info Info::combineInfo(Info1, Info2); // sets some values of info1 to info3 and some of info2 to info3. 

2 个答案:

答案 0 :(得分:1)

该功能应该是:

  class Info{
    static Info combineInfo(Info info1, Info info2) { 
      //implementation  
    }
    //the rest of the class implementation!
  };

由于它是一个成员函数,它需要范围解析运算符::

info3 = Info::combineInfo(info1, info2);这就是你的称呼方式!

当前实现期望combineInfo处于全局范围内,而它位于类(成员函数)中 - 因此出错!

答案 1 :(得分:0)

使用 Info :: combineInfo(info1,info2);

您无法直接访问外部的会员功能。你需要使用范围解析运算符::或。访问它。

相关问题