C++ 引用和指针以及使用常量传递的参数
不知何故,就我的一生而言,我永远无法理解参考资料。我有一个C++ 引用和指针以及使用常量传递的参数,c++,pointers,reference,constants,C++,Pointers,Reference,Constants,不知何故,就我的一生而言,我永远无法理解参考资料。我有一个队列类,方法如下: void push(const T& item); 我现在正在尝试将一些东西放入队列(这是一个非常做作的示例): class my_class{}; 无效调度(const my_class*项目) { 我的队列; 队列。推送(项目); } // ... 自动x=新的我的_类; 派遣(x); 从const my_class*转换为my_class*const&时出现错误。我尝试了&item,铸造项,但没有一个
队列
类,方法如下:
void push(const T& item);
我现在正在尝试将一些东西放入队列(这是一个非常做作的示例):
class my_class{};
无效调度(const my_class*项目)
{
我的队列;
队列。推送(项目);
}
// ...
自动x=新的我的_类;
派遣(x);
从
const my_class*
转换为my_class*const&
时出现错误。我尝试了&item
,铸造项
,但没有一个能让编译器满意。正确的方法是什么?我的队列
是否应该属于my_class
而不是my_class*
?另一种可能是我的push
参数类型也不正确…我想我知道了——我的队列需要是const my_class*
类型,以匹配我的dispatch
参数类型。让我知道是否有更好的方法……*项
无法工作,因为我的队列在模板处理后的推送
需要我的类*&
(我没有包括常量
,因为它们的顺序总是让我困惑)<代码>*项将成为我的类&
。是的,我的坏。但是,不要将参数类型设置为const my_class*
,而是将函数本身的参数更改为my_class*
,或者将答案重构为更“回答”的形式,或者用附加的数据和想法编辑您的问题。
class my_class { };
void dispatch(const my_class* item)
{
my_queue<my_class*> queue;
queue.push(item);
}
// ...
auto x = new my_class;
dispatch(x);