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