您如何使用成员正确初始化构造的结构,该构件是指向const值的const指针

How do you correctly initialize a struct with a member that is a const pointer to a const value?

本文关键字:const 构件 指针 值的 结构 成员 何使用 初始化      更新时间:2023-10-16

当前我正在做这样的事情:

struct foo
{
    const int
        *const a,
        *const b, 
        *const c;
    foo(int a, int b, int c)
            : a(_a), b(_b), c(_c)
    {
        *_a = a;
        *_b = b;
        *_c = c;
    }
private:
    int _a[1], _b[1], _c[1];
};

但是有没有办法在不放入第二组指针(_a, _b, _c)?

的情况下做到这一点

但是有没有办法在不放入第二组指针(_a_b_c)的情况下做到这一点?

当然。您可以使用:

foo(int a, int b, int c)
        : a(new int(a)), b(new int(b)), c(new int(c)) {}

请记住三个规则,并适当地为foo