gpt4 book ai didi

C++ 无效使用成员函数,你忘记了 ( ) 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 01:10:03 25 4
gpt4 key购买 nike

我正在完成一项作业,其中我使用模板创建自己的容器。我需要使用的容器称为 Smaph,它接收两对数字并使用它们执行各种功能。我只被允许为这个作业制作一个头文件。我创建了一个单链接类 slink,它接受一个模板参数。

目前,我正在尝试感受模板并学习如何使用它们,所以我有一个非常简单的示例,希望您能帮助我。我的单向链表类中有一个 push_back 函数可以添加到我的模板中。出于某种原因,我无法向我的 slink 添加内容,因为我收到一个编译时错误,上面写着“无效使用成员函数,(push_back)”,你忘记了 ( ) 吗?有人可以向我解释为什么会出现此错误吗?谢谢!

template <typename T>
class slink {
private:
struct node {
T datum;
struct node *next;
};
node *head, *tail;
public:
slink() : head(0), tail(0) {
}

~slink() {
clear();
}
void push_back(const T &datum) {
node *p = new node;
p->datum = datum;
p->next = 0;
if (!tail)
head = p;
else
tail->next = p;
tail = p;
}

template <typename Tfirst, typename Tsecond>
class Smaph {

public:
Smaph();
~Smaph();
Smaph(const Tfirst a, const Tsecond b) {
std::pair<Tfirst, Tsecond> pair1(a, b);
s.push_back(pair1);
}
private:

slink<std::pair<Tfirst, Tsecond> > s();


};

最后,我主要测试我的程序。我现在想做的就是通过我的 Smaph 将这两个数字添加到我的单向链表中。

int main() {
Smaph<int, double> s(3, 6.3);
}

最佳答案

slink<std::pair<Tfirst, Tsecond> > s();

这是一个名为 s 的函数的声明不带参数并返回 slink<std::pair<Tfirst, Tsecond> > .当编译器看到你做 s.push_back(pair1); ,它想知道您要对那个糟糕的功能做什么。删除 ()使其成为数据成员:

slink<std::pair<Tfirst, Tsecond> > s;

关于C++ 无效使用成员函数,你忘记了 ( ) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16326551/

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