compiler error saying invalid initialization of reference of type somethingamp; from expression of type something*(编译器错误,提示对 somethingamp; 类型的引用初始化无效来自某物类型的表达*)
问题描述
我有一个像
test(something &)
我正在做
something *ss = new something();
我说
test(ss)
编译器抱怨说初始化了 something& 类型的引用from 表达 something * .
compiler complains saying initialization of reference of type something& from expression something * .
但不是 new 返回地址并且 ss 必须指向该地址!所以如果测试期待一个参考是不是它 ss 代表一个参考?
but isn't that new returns the address and ss must point to that address ! so if test is expecting a reference is not it ss represents a reference ?
推荐答案
你的函数需要一个普通的 something
对象.你不需要在这里使用指针:
Your function expects a normal something
object. You don't need to use a pointer here:
something ss;
test(ss);
当您的函数签名看起来像 f(T&)
时,这意味着它接受对 T
对象的引用.当签名为f(T*)
时,表示它接受一个指针到一个T
对象.
When your function signature looks like f(T&)
, it means that it accepts a reference to a T
object. When the signature is f(T*)
, it means that it accepts a pointer to a T
object.
这篇关于编译器错误,提示对 something& 类型的引用初始化无效来自某物类型的表达*的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:编译器错误,提示对 something& 类型的引用初始化无效来自某物类型的表达*


基础教程推荐
- 如何检查GTK+3.0中的小部件类型? 2022-11-30
- 如何在 C++ 中初始化静态常量成员? 2022-01-01
- C++结构和函数声明。为什么它不能编译? 2022-11-07
- 常量变量在标题中不起作用 2021-01-01
- 如何将 std::pair 的排序 std::list 转换为 std::map 2022-01-01
- 在 C++ 中计算滚动/移动平均值 2021-01-01
- 这个宏可以转换成函数吗? 2022-01-01
- 我有静态或动态 boost 库吗? 2021-01-01
- 静态库、静态链接动态库和动态链接动态库的 .lib 文件里面是什么? 2021-01-01
- 如何通过C程序打开命令提示符Cmd 2022-12-09