c++类声明错误

c++ declaration error with classes

本文关键字:错误 声明 c++      更新时间:2023-10-16

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

Info combineInfo(info1, info2);

main中,我用构造函数将所有内容输入info1和info2,并且这些都很好。然而,当我从main调用combineInfo(info1, info2)时,我陷入了死胡同。我收到消息"错误: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. 

函数应为:

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

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

info3 = Info::combineInfo(info1, info2);,这就是你怎么称呼它的!

当前的实现期望combineInfo在全局作用域中,而它在类(成员函数)中-因此出现错误!

使用信息::combineInfo (info1 info2);

不能在外部直接访问成员函数。您需要使用范围解析操作符::or。