Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.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++_Function - Fatal编程技术网

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

C++ 如何使对象上可以调用的函数与该类的成员函数相同?,c++,function,C++,Function,例如,如果您有一个std::string类的对象,则可以调用compare(string str)函数,如下所示: myString.compare(myOtherString); 我怎样才能创建自己的函数,以同样的方式调用字符串?例如: myString.contains(char[] chars); 你不能在C++中真正做到这一点,你不应该尝试。当然,您可以从std::string继承并实现您的方法,但是您的方法将无法从常规字符串中使用。在C++中,我们不必太过努力使所有的东西都成为类方

例如,如果您有一个std::string类的对象,则可以调用
compare(string str)
函数,如下所示:

myString.compare(myOtherString);
我怎样才能创建自己的函数,以同样的方式调用字符串?例如:

myString.contains(char[] chars);

你不能在C++中真正做到这一点,你不应该尝试。当然,您可以从std::string继承并实现您的方法,但是您的方法将无法从常规字符串中使用。在C++中,我们不必太过努力使所有的东西都成为类方法——自由函数也是函数!P> > P>不能在C++中向现有类添加成员函数。而是编写一个非成员函数

bool contains(std::string const & s1, std::string const & s2);
并称之为

contains(myString, myOtherString);

@PiotrS.:我感觉这就是OP想要问的问题。你可以切换到C#:DIf,如果你问你是否可以添加到现有的封闭类定义中,不,你不能。你可以尝试一下,最终得到类似的结果。但不要在家里这样做。