繁体   English   中英

C++:如何为指向 3 个双精度数组的指针创建 getter/setter

[英]C++: How to create getters/setters for a pointer to a pointer to an array of 3 doubles

我有一个问题,如何返回指向 3 个双精度数组的指针的指针。 在我的示例中,我有一个 class 作为私有成员:

class MyColorClass {
....
    private:
    const double (**colorData)[3];
...
}

我应该如何为此编写getter和setter?

这不起作用:

const double *** MyColorClass::getcolorData()
{
    return colorData;
}

PS:之前有一个写的不好的类似问题请见谅(我删掉了)

谢谢:)

const double (**getColorData() const)[3]
{
    return colorData;
}

右侧的const不是特定于此类型的,应该添加到所有 getter 中。 通常它位于声明的最右边,但在这种情况下不是。

像你那样用指针替换数组只有在你为数组创建一个 getter 时才有意义,但是colorData是一个指针,而不是一个数组(它指向什么并不重要)。


                getColorData              // getColorData is
                getColorData() const      // a const function, returning
               *getColorData() const      // a pointer to
              **getColorData() const      // a pointer to
             (**getColorData() const)     // ...
             (**getColorData() const)[3]  // an array of 3 of
const double (**getColorData() const)[3]  // const double

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM