如何使用声明为私有的结构
How to use structs declared private?
我正在做一个带有预制.hpp文件的项目,其中包含所有声明和内容。
在类的私有部分声明一个结构,以及一些私有成员。
我需要在.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,这也是私有的,但不能从结构 foo 中创建一个数组?
我该如何解决这个问题?(我正在上入门C++课......所以希望有一个简单的解决方案)
有几个问题。
-
不能像尝试的那样使用在类的
private
部分中定义的类型。 -
可以通过指定适当的范围来使用嵌套类型。
EnclosingClass::foo newArray[10];
但这只有在
EnclosingClass
的public
部分中定义了foo
时才有效。
你应该像这样定义类外部的结构 int
struct Foo
{
std::string a;
unsigned int b;
};
class A {
private:
Foo foo;
...
}
相关文章:
- 在结构中使用 switch 引用结构中的数据C++
- 在结构中使用枚举的值
- 如果在结构内部使用condition_variable,则它不起作用
- 在结构中使用联合的目的是什么?
- 循环依赖结构,使用前向声明时结构的错误重定义
- 如何将unordered_set与自定义结构一起使用?
- 输入的数字与代码显示的数字不同,在结构中使用数组,为什么?
- 在包含浮点数的结构上使用 memset()
- 多重继承:跳过'virtual'关键字并拒绝菱形层次结构的使用?
- C++ 数据结构队列:使用 for 循环查找队列中最大的元素
- 将C++容器与 C 语言结构混合使用
- 在结构中使用struct数组时,标量初始化器周围的牙套
- 将 OpenGL VBO 与自定义类/数据结构一起使用
- 如何在python中创建等效的结构并使用malloc更改空指针的引用
- 如何在结构中使用Boost库中的矩阵
- 如何在我的结构中使用库
- 在结构中使用位字段并使用C++从内存中读取实例
- 在现有数据结构上使用BGL算法需要什么(边和顶点作为矢量<对象*>)?
- 如何在 c++ 中的向量结构中使用结构向量
- 将 STL 容器与结构一起使用