c++ - 按位常量和指针 :

标签 c++ pointers

我在迈耶斯读到一行: “经常修改指针指向的内容的成员函数不会执行 const。 但如果对象中只有指针,函数是按位常量,编译器就不会报错。”

我不明白修改函数中的指针不能保持其按位常数,因为它是一个成员变量...

即使我们假设按位常数仅适用于指针指向的值,而不适用于指针地址本身。 那么为什么它是类中唯一的成员变量或者它不是唯一的唯一成员变量那么重要..

最佳答案

基本上这意味着如果你有

struct Foo
{
    int bar;
};

您不能让 const 成员函数更改 bar 的值。

但是,如果 bar 是指向 int 的指针,您可以在 const 方法中更改 int 的值,因为 int 是实际上不是结构的一部分。

两个版本都实现了相同的目标(即更改 int 的值),但在第一个版本中,您破坏了按位常量,编译器会报错,而在第二个版本中则不会。

关于c++ - 按位常量和指针 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28350009/

相关文章:

c++ - 如何在C++控制台中结束输入多行?

c++ - 为什么会出现段错误 (C++ 98)?

c++ - 这个算法的运行时间复杂度是多少?您如何对其进行分析?

c - 函数调用后输出不同的值?

char数组到uint8类型指针的转换

c - 从 c 中不兼容的指针类型赋值,用于指向结构的指针

c++ - 我可以在不使用嵌入式 while_loop 的情况下使用 SDL 检查事件吗?

c++ - 我如何用 c 中的 switch 翻转我的语句?

c++ - 获取智能指针的指针指针

c - 求char**形式的字符串数组的长度?