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

时间:2015-11-13 08:26:53

标签: c++ function class

我现在只使用c ++大约一个月了,我想知道是否可以为类似字符串的东西创建自己的自定义函数。 例如,要查找字符串的大小stringname.size()但是,如果我想创建类似stringname.customfunction()的函数,我可以决定customfunction()做什么。我想这样做,所以我可以创建一个.toLower()函数,将整个字符串转换为更低。我很抱歉,如果这是一个奇怪的问题,但任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:4)

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

最简单也是最好的方法是创建独立的功能。

这意味着您可以将其称为customfunction( s )

答案 1 :(得分:3)

你可以通过创建自己的字符串类来实现这一点,但是我认为你的意思是调用"THE String".toLower()之类的东西,例如在python中。据我所知,这在c ++中实际上是不可能的。

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

答案 2 :(得分:2)

你不能直接但你应该能够通过继承std::string(或basic_string<char>)来模仿这个:

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

注意:但这样做是个坏主意。除link @Cheers and hth. - Alf提到的wide interface of std::string之外,Herb Sutter还讨论了Duration JavaDoc过度Period并进一步扩大它是一个坏主意。

答案 3 :(得分:1)

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

你应该创建一个简单的函数void toLower(std::string str);,它会为你转换它。 (您可以使用toLower(str);调用此函数。)