gpt4 book ai didi

c++ - 指向常量指针常量数组的常量指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:54:04 26 4
gpt4 key购买 nike

我们正在学习面向对象的 c++ 类中的 const 关键字。我们的教授说他故意过分帮助我们学习使用 const 关键字的所有可能方法。

在我们的任务中,他说:

Your constructor parameters should be constant pointers to constant arrays of constant pointers

有人能给我看一下这个参数列表的例子,并解释一下每个常量的作用吗?我相信原型(prototype)看起来像这样:

Square(const char* const []);
  • 第一个用于指针(在本例中为 char*)
  • 第二个常量用于数组
  • 但是我不知道我应该把第三个常量放在哪里

如有任何帮助,我们将不胜感激。

最佳答案

让我们看看:

  1. 指针数组:void * array[10];

  2. 常量指针数组,与“常量数组”相同:void * const array[10]

  3. 指向上面的指针:void * const (*pa)[10] = &array;

  4. 指向 (2) 的常量指针:void * const (* const pa)[10] = &array;

  5. 上面的一个版本,其中原始数组由指向常量的指针组成:

    void const * array2[15];

    void const * const (* const pa)[15] = &array2;

所以这是您的构造函数签名,适用于任何基础类型和数组大小:

struct Foo
{
template <typename T, unsigned int N>
Foo(T const * const (* const pa)[N]);

// ...
};

至于它有什么用:几乎什么都没有。但了解这一点也没什么坏处。

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com