在C++中为字符串创建自定义函数

Creating Custom Functions for Strings in C++

本文关键字:创建 自定义函数 字符串 C++      更新时间:2023-10-16

我使用c++才一个月左右,我想知道是否可以为字符串之类的东西创建自己的自定义函数。例如,要想找到字符串的大小,你可以做stringname.size(),但如果我想做一个像stringname.customfunction()这样的函数,我可以决定customfunction()的作用。我想这样做,这样我就可以创建一个.toLower()函数,将整个字符串转换为lower。如果这是一个更棘手的问题,我很抱歉,但任何帮助都将不胜感激。

是的,您可以创建自定义函数,但不能直接作为现有类的成员函数。

最简单也是最好的方法就是创建独立的函数。

这意味着你会把它称为customfunction( s )

您可以通过创建自己的字符串类来实现这一点,但正如我所说,您的意思是像在python中那样调用"THE String".toLower()。据我所知,这在c++中实际上是不可能的。

再一次,你最好的机会是自己上课,这样你就可以给MyString("THE String").toLower()这样的人打电话了。或者只需创建一个函数toLower,它接受一个字符串并返回一个字符串toLower("THE String")

您不能直接使用,但您应该能够通过继承std::string(或basic_string<char>):来模拟它

class mystring : public std::string
{
public:
    void customfunction() { /* ... */ }
};

注意:但是这样做是个坏主意。除了@Cheers和hth.-的链接Alf提到,Herb Sutter讨论了std::string的接口太宽,进一步扩展它是个坏主意。

这可能有点高级,也很受鄙视,但您可以更改实际的源文件。我强烈建议你不要这样做。

您应该只制作一个简单的函数void toLower(std::string str);,它将为您转换它。(您可以用toLower(str);调用此函数。)