- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样的代码:
template <class Item,class Key>
class bst
{
public:
//bst(const Item& new_item,const Key& new_key);
Key get_key() const {return key;};
Item get_item() const {return item;};
bst get_right() const {return *rightPtr;};
bst get_left() const {return *leftPtr;};
void set_key(const Key& new_key) {key = new_key;};
void set_item(const Item& new_item) {item = new_item;};
void set_right(bst *new_right) {rightPtr=new_right;};
void set_left(bst *new_left) {leftPtr=new_left;};
Item item;
Key key;
bst *rightPtr;
bst *leftPtr;
private:
};
template <class Item,class Key,class Process,class Param>
void inorder_processing_param(bst<Item,Key> *root,Process f,Param p)
{
if(root==NULL)
{return;}
else
{
inorder_processing(root->leftPtr,f,p);
f(root->item,p);
inorder_processing(root->rightPtr,f,p);
}
}
void perfect(studentRecord s)
{
if (s.GPA==4.0)
{
cout << s.id << " " << s.student_name;
}
}
void major_m(bst<studentRecord,int>* root)
{
if (root->item.major=="m")
{
cout << root->item.id << " " << root->item.student_name;
}
}
void print_major(bst<studentRecord,int>* root,char* m)
{
inorder_processing(root,major_m);
}
运行时报错:
bst.template: In function `void inorder_processing(bst<Item, Key>*, Process)
[with Item = studentRecord, Key = int, Process = void (*)(bst<studentRecord,
int>*)]':
studentDatabase.cxx:97: instantiated from here
bst.template:151: error: cannot convert `studentRecord' to `bst<studentRecord,
int>*' in argument passing
我该如何解决
最佳答案
改变:
f(root->item,p);
收件人:
f(root);
或者,将另一个参数添加到 major_m
并将其称为 f(root, p)
编辑:显然你还没有发布你的
template <class Item,class Key,class Process,class Param>
void inorder_processing(bst<Item,Key> *root,Process f)
函数。鉴于您拥有的代码,我会猜测您在其中调用了 f(root->item)
- 当您需要执行 f(root)
/p>
关于c++ - 错误 : cannot convert in arguement passing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5828910/
我是编写代码和批处理文件的新手。我正在尝试通过允许用户发出以下批处理文件来自动执行用户设置: 执行的命令 = "BVT_AudioDecode_Setup.bat V:\WP\BVT\Audio\De
我正在尝试使用 fopen 和 fdopen 创建并打开一个文件来写入一些内容。下面是我写的代码: char Path[100]; int write_fd; snprintf
File spf = new File(setspath); // List lst = new List(); lst.add(sourcej); lst.add(folname); lst.ad
我有这样的代码: template class bst { public: //bst(const Item& new_item,const Key& new_key); Key get_
我正在用 C++ 编写,但是我得到了关于 的错误 declaration of 'triangle' as multidimensional array must have bounds for al
我正在尝试使用 java 在 Linux 上为 raid 驱动器创建文件系统。 当我尝试使用 ProcessBuilder 执行以下命令时遇到以下问题。 Process '[/usr/bin/sudo
我确定这个问题已经在某个地方得到了回答,如果有的话请给我链接,但我正在努力寻找这个确切问题的答案。有很多非常接近。以下是一些我已经阅读过但没有完全回答我的问题的内容: pass by referenc
在我下面的代码中,您会注意到第 30 行和第 37 行这两行代码 fahrenheit = (9.0/5)*(cel+32); celsius = (5.0/9)*(fahren-32
尝试在一个 SKScene 与另一个 SKScene 之间转换时。例如,当它的游戏结束时,我使用下面的代码并得到以下错误:- Extra Arguement "size" in call 下面是发生此
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
我正在使用 Laravel 5.8,我创建了一个名为 UserWalletNewTransaction 的事件,如下所示: public $transaction; public $added_typ
运行 select() 函数(提供的代码的第 13 行)返回错误 10022 (WSAEINVAL),这意味着我的超时变量为负数或所有 3 个其他变量均为 NULL。但我只在第一次通过外部循环迭代后才
这是我在这里的第一篇文章,我是 C 的新手。 我想编写一个能够打印矩阵的程序。它应该看起来像: ---- -o-- ooo- ---- 所以我希望在开始时将其打印出来。 我当前的代码是: //
我的查询非常简单,不确定发生了什么: 用户.rb def self.find_house_number(house_number) User.where("house_number = ?", h
我目前正在尝试在沿着另一条多段线运行的两个 block (first_block、second_block)之间运行一条多段线,在操作结束时调用一个插入函数,该函数使用开始的详细信息填充注释 bloc
我有一个下面的规范,我在其中模拟我的用户模型并 stub 它的方法。 require 'spec_helper' describe User do let(:username) {"test@te
我是一名优秀的程序员,十分优秀!