如何使一个可以在对象上调用的函数与该类的成员函数相同?

时间:2014-09-09 12:24:20

标签: c++ function

例如,如果你有一个std :: string类的对象,你可以按如下方式调用compare(string str)函数:

myString.compare(myOtherString);

如何创建自己的函数,我可以以相同的方式调用字符串?例如:

myString.contains(char[] chars);

2 个答案:

答案 0 :(得分:1)

您无法在C ++中向现有类添加成员函数。相反,写一个非成员函数

bool contains(std::string const & s1, std::string const & s2);

并将其命名为

contains(myString, myOtherString);

答案 1 :(得分:0)

你不能在C ++中真正做到这一点,你不应该尝试。当然,你可以从std :: string继承并实现你的方法,但是你的方法将无法从常规字符串中使用。在C ++中,我们不会太努力使一切都成为类方法 - 免费函数也是函数!