【发布时间】:2014-12-26 23:14:26
【问题描述】:
所以,我有这个项目,我必须在其中重新创建最基本的 MySQL 函数,对歌曲数据库(以类表示)进行操作。
我创建了另一个类,它是我的界面(用户界面)。我用它来获取命令、识别参数等等。我想创建一个高阶函数,它需要几个参数。其中一些是原始数据类型,但也有两个函数作为参数。
现在,其中一个函数来自同一个类(接口),但另一个函数来自 Songs 类。问题是我不知道如何引用该类中的函数?
我正在考虑将类设为静态,因为无论如何你只能创建一个 Songs 类型的数据库。这很可能让我有可能使用 Songs:: 参考,但我不确定这是否能解决我的问题。
除了解决方案之外,我还要求对 C++ 中的高阶函数进行更详细的解释,我似乎找不到好的资源。而且我发现的所有资源都没有提到从其他类获取函数参数的高阶函数。
class Song
{
public:
string getName() const;
string getSinger() const;
unsigned int getLength();
unsigned short getYear() const;
private:
char singer[51];
char name[51];
unsigned int length;
unsigned short year;
};
然后在界面中:
bool isEqual(string, string);
template<typename T>
bool isSmaller(T firstElement, T secondElement);
template<typename T>
bool isGreater(T firstElement, T secondElement);
我想创建一个高阶函数来检查比较器函数的值。但是,比较器必须采用的值之一必须来自 Songs 对象。换句话说,我还必须通过 4 个 getter 中的一个,视情况而定。
【问题讨论】:
-
也许您现有代码的示例会有所帮助。
标签: c++ class oop higher-order-functions