cannot convert parameter 1 from 'SqQueue *' to 'SqQueue &' A reference that is not to 'const' cannot be bound to a non-lvalue
时间: 2024-05-16 10:14:24 浏览: 120
这个错误提示是因为你在传参时出现了问题。可能是因为你的函数定义是使用引用类型的参数,而你在实际调用函数时却传入了一个指针类型的参数。
如果你的函数定义是使用引用类型的参数,那么在调用函数时应该传入一个引用类型的参数,而不是指针类型的参数。你可以通过在传参时在指针前加上“&”符号来将指针类型的参数转换为引用类型的参数。
例如,如果你的函数定义如下:
```
void myFunction(SqQueue& queue) {
// do something with the queue
}
```
那么在调用函数时应该这样写:
```
SqQueue myQueue;
myFunction(myQueue); // 传入一个 SqQueue 类型的引用参数
```
如果你一定要使用指针类型的参数,那么在函数定义时应该将参数类型改为指针类型,并在函数内部使用指针操作符“->”来访问参数指针所指向的对象。例如:
```
void myFunction(SqQueue* queue) {
// do something with the queue
queue->push(1); // 使用指针操作符来访问队列对象
}
```
在调用函数时应该这样写:
```
SqQueue myQueue;
myFunction(&myQueue); // 传入一个 SqQueue 类型的指针参数
```
相关问题
36 6 E:\AAsoft\suanfa\exp3\exp3-4\SqQueue.cpp [Error] in passing argument 2 of 'bool EnQueue(SqQueue*&, int&)'
根据您提供的信息,看起来是在调用函数 `EnQueue` 时出现了错误。具体来说,第二个参数的类型与函数声明不匹配。可能是函数声明中该参数的类型与实际传入的参数类型不同,或者该参数的地址没有正确传递。
请检查函数 `EnQueue` 的声明和调用,确保它们的参数类型匹配,并且所有参数的地址都被正确传递。如果问题仍然存在,请提供更多的代码和错误信息,以便更好地理解问题的本质。
C++中 [Error] cannot convert 'QUEUE1' to 'int' for argument '2' to 'bool enQueue(SqQueue*&, int)'是什么意思
这个错误是因为你在调用 `enQueue` 函数时,第二个参数传入的是 `QUEUE1`,而该函数的第二个参数是一个 `int` 类型,两者类型不匹配,导致编译器报错。
可能的原因是你声明了一个叫 `QUEUE1` 的变量,但是你想要传入该变量的值给 `enQueue` 函数,而不是传入变量本身。你需要将 `QUEUE1` 的值赋给一个 `int` 变量,然后将该变量作为参数传入 `enQueue` 函数中。
阅读全文