另一个:从"常量类型*"到"类型*"的转换无效
yet another: invalid conversion from 'const type*' to 'type*'
就这么简单:我想指定函数不会更改其指针参数。如何?
class A {
private:
int *p;
public:
void foo (const int *q) {
p = q;
}
};
A a;
int b = 3;
int *c = &b;
a.foo(c);
仍然无法正常工作,感谢您的帮助!
好的,您已经澄清了您不打算将恒常性添加到点,而是添加到指针(当然,在复制指针时可以安全地删除这一点(。错误消息很好地表明您未能实现该目标。
要执行此操作的类型是:
int* const
请记住,const
直接应用于左侧(除非那里没有任何东西,在这种情况下,它直接应用于右侧(。
您正在向 'foo((' 传递一个 const 指针,这意味着您告诉编译器您不希望任何人更改指针发送的数据。因此,将常量指针转换为非常量指针是没有意义的。但是,如果您真的想"只是为了好玩",那么您可以通过"memcpy"解决此问题。
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++中的双指针类型转换
- 逐位操作的隐式类型转换
- 模板中的类型转换
- 在 C++(和 C)中进行类型转换时明显不一致
- 字符类型转换不兼容
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- C++:用户定义的显式类型转换函数错误
- 将类指针类型转换为键时出错
- 通过引用传递参数时C++类型转换
- 在 C++ 中将一个模板类型的对象类型转换为另一个模板类型
- C++显式类型转换(C 样式强制转换)的强制表示法和static_cast的多种解释
- C++无效的函数类型转换
- 在将派生类指针类型转换为派生类指针后,从基类指针调用派生类函数
- 如何将Windows产品类型转换为名称?
- 通过构造函数方法输出的类到类类型转换是 5500 为什么不是 5555
- 事件系统:使用类型转换或联合进行继承
- 如何在参数中定义隐式类型转换的构造函数?
- 类模板实例化中的类型转换