gpt4 book ai didi

c++ - 使用仿函数改变大小写

转载 作者:行者123 更新时间:2023-11-30 02:29:05 25 4
gpt4 key购买 nike

我对仿函数没有经验,想了解一些基础知识。我想要的只是一个仿函数,它将接受一个字符串并返回相同的字符串,并将所有值更改为大写。我有以下代码:

#include "stdafx.h"
#include <iostream>
#include <string>
#include <string.h>
#include <algorithm>

using namespace std;

class myFunctor {
private:
public:
myFunctor(string) {};
string operator() (string);
};

string myFunctor::operator() (string stringToConvert) {
transform(stringToConvert.begin(), stringToConvert.end(), stringToConvert.begin(), toupper);
return stringToConvert;
}

int main() {
myFunctor convert("i want this string converted");
return 0;
}

这显然不会在屏幕上打印任何内容,但我希望有人能帮助解释我必须进一步做什么才能在此处获得所需的结果,以便我能更好地理解该系统的工作原理。

提前感谢您的帮助!

最佳答案

对于初学者来说,仿函数是一个实现operator() 的对象。它不是构造函数接受参数的对象(尽管特殊用途的仿函数可以,但这里不是这种情况)。所以第一个错误是你的仿函数有一个构造函数:

myFunctor(string) {};

而且,这个构造函数不对其参数做任何事情。所以这应该是第一个线索,在你的情况下,你的仿函数的构造函数应该没有参数,应该只是:

myFunctor() {}

或者,完全忘记构造函数,让仿函数类使用它的默认构造函数。

现在,有了它的默认构造函数,是时候构造它了:

myFunctor convert;

然后,调用仿函数:

std::cout << convert("i want this string converted") << std::endl;

关于c++ - 使用仿函数改变大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39988854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com