gpt4 book ai didi

c++ - 如何使用声明为私有(private)的结构?

转载 作者:行者123 更新时间:2023-11-28 02:36:36 24 4
gpt4 key购买 nike

我正在开发一个包含所有声明和内容的预制 .hpp 文件的项目。

在类的私有(private)部分声明了一个结构,以及一些私有(private)成员。

我需要在我的 .cpp 文件中创建一个结构类型的数组。

//.hpp

private:
struct foo
{
std::string a;
unsigned int b;
};

std::string* x;
unsigned int y;

//.cpp

unsigned int returny()
{
return y; // No errors
}

foo newArray[10]; // Compile time error; unknown type name

为什么我可以返回 y,它也是私有(private)的,但不能从 struct foo 中创建一个数组?

我该如何解决这个问题? (我正在学习 C++ 入门类(class)...所以希望有一个简单的解决方案)

最佳答案

有几个问题。

  1. 您不能像您尝试的那样使用类的 private 部分中定义的类型。

  2. 可以通过指定适当的范围来使用嵌套类型。

    EnclosingClass::foo newArray[10];

    但这只有在 EnclosingClasspublic 部分定义了 foo 时才有效。

关于c++ - 如何使用声明为私有(private)的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27211198/

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