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& 类型的引用初始化无效来自某物类型的表达*
基础教程推荐
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- Windows Media Foundation 录制音频 2021-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- 从 std::cin 读取密码 2021-01-01
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 使用从字符串中提取的参数调用函数 2022-01-01
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01
- 管理共享内存应该分配多少内存?(助推) 2022-12-07