【问题标题】:using overloaded operator[]使用重载运算符[]
【发布时间】:2012-12-03 12:31:59
【问题描述】:

我正在尝试使用重载运算符,但不确定如何在我的主 cpp 中使用/调用它。代码在另一个文件中,如下所示:

string postH::operator[](int add){
   if(add > 100)
   {return "\nsome text\n";}
    else {return "\nsome other text\n";}
   } 

【问题讨论】:

  • 这让我想知道你为什么要超载它......

标签: c++ overloading operator-keyword


【解决方案1】:

您可以像使用普通数组索引一样使用它。

postH foo;
std::cout << foo[150];

【讨论】:

  • 谢谢它的工作:) 让它像这样只是不知道它需要 cout 在前面:)
  • @JánosBalázs 它不需要前面需要cout
【解决方案2】:

operator [] 在大括号之间获取一个整数值。这就是为什么你应该在你的重载函数中给出一个参数。之后,您可以照常使用运算符:postHObj[10]
换句话说,10 是add
我认为this 会有所帮助

【讨论】:

  • 我试过这样:post1[felad1.getCS_Suly()]; (注意:felad1.getCS_Suly() 给出一个 int)但是这样它就不起作用了。 //成功了 :)
猜你喜欢
  • 2015-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
  • 2010-11-27
  • 1970-01-01
相关资源
最近更新 更多