指针问题,将其作为常量发送
Pointer issue sending it as a constant
我再次使用c++工作了一段时间,我对在函数中发送指针作为参数有疑问。
我想发送一个对象指针到一个函数,但具有const状态,以知道指针指向的对象在任何时候都不会被修改。所以我这样做:
int hi(const SomeObject* so)
{
so->SayHi();
}
SomeObject* so = new SomeObject();
hi(so);
但它没有工作。它说不兼容类型…
另外,如果我将const添加到函数中也会有所不同吗?如:
int hi(const SomeObject* so) const;
谁能给我解释一下这个疑问?由于 int hi(const SomeObject* so)
您已经声明SomeObject
为常数。如果没有将sayHi声明为const,这将导致编译器错误。
class SomeObject {
void sayHi(void) const;
}
如果你的意图是使指针恒定(而不是它指向的对象),它应该是这样的:
int hi(SomeObject* const so)
在这里你可以读到指针和常量指针
相关文章:
- constexpr构造函数需要常量成员函数时出现问题
- gcc和clang在表达式是否为常量求值的问题上存在分歧
- C++中的指针和常量问题不大
- 当成员值从指针更改为非指针时,C++常量问题
- 常量公共成员有什么问题?
- 生成提升::hana::set 的常量表达式问题
- Visual Studio 2017 中的 cpprestapi 问题找不到 POST/GET 常量
- 关于在需要常量表达式的上下文中使用的glvalue常量表达式的问题
- public:静态常量字符串声明/初始化问题
- C++继承和"常量"交互的问题
- 在多线程函数中返回共享的常量指针会导致计时问题吗?
- 将 c++ 字符串转换为常量字符 * 时出现问题
- 推导模板化类参数的模板参数:常量问题
- C++:常量减少重复符号问题
- 常量迭代器的问题
- Win32 Atoi 问题无法将参数 1 从 'wchar_t [5]' 转换为常量字符 *
- 常量正确性和shared_ptr,一个设计问题
- 如何解决这个问题?非常量引用必须绑定到左值
- 真的很想解决地图的"常量"问题
- ENUM常量问题