相关疑难解决方法(0)

相同内存地址的两个不同值

#include <iostream>
using namespace std;

int main() {
    const int N = 22;
    int * pN = const_cast<int*>(&N);
    *pN = 33;
    cout << N << '\t' << &N << endl;
    cout << *pN << '\t' << pN << endl;
}
Run Code Online (Sandbox Code Playgroud)

产量

22 0x22ff74

33 0x22ff74

为什么同一地址有两个不同的值?

c++

16
推荐指数
3
解决办法
1740
查看次数

对象构造后初始化 const 成员变量

我经常发现自己希望对象的成员变量可以是 const,但系统允许在构造后初始化该 const 变量。有没有一种机制可以让我这样做?

为了澄清这一点,这里有一个例子:

class A
{
public:
    A(){}
    initialize(int x) { c = x; }
private:
    const int c;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够做这样的事情。我在构造时没有这些信息,所以我不能简单地将初始化移动到构造函数的初始化列表中。

c++ constants

2
推荐指数
1
解决办法
1656
查看次数

标签 统计

c++ ×2

constants ×1