c++ - 使用另一个类的结构

标签 c++ class struct

我在执行程序的过程中遇到了一个小问题。 有没有办法使用在另一个类中声明的结构?

Example

Class A{
 struct personA
 {
   char name[MAX];
   char nationality[MAX];
 }

 void addPersonA(fstream, int, personA);
}

Class B{
 struct personB
 {
   char nameB[MAX];
   char nationalityB[MAX];
 }

 void addPersonB(fstream, int, personB);
}

//Class A.CPP
Class_A
{

int choice;

cin >> choice;

   if(choice == 1)
{
personA a;
addPersonA(afile, num, a);

}

else
{

personB b; // how do i include this part?

addPersonB(afile, num, b); // this part error. b is not defined.

}

}

问题是 personB 没有在范围内声明。

Class_A.cpp 的头文件包含以下内容

#include "Class_A.h" 
#include "Class_B.h"

最佳答案

你需要公开personA:

class A
{
public:

 struct personA
 {
   char name[MAX];
   char nationality[MAX];
 }

 void addPersonA(fstream, int, personA);
}

要访问子类/结构,您需要使用完全限定名称:

if(choice == 1)
{
  A::personA a;
  addPersonA(afile, num, a);    
}

关于c++ - 使用另一个类的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21512560/

相关文章:

c++ - 如何在 C++ 中使用递归查找列表中的偶数之和?

c++ - 从父类(super class)对象数组调用子类方法

c++ - 如何为 qtcreator 编写调试助手?

java - 关于对象比较

c++ - 调用 operator<< 时出现链接器错误,如何解决?

ios - Swift 数组问题

c - 访问嵌套结构的字段

c - 我不明白这个 C 代码的行为(与 2 个位域结构、一个字和一个字节数组的 union )

c++ - 使用 Visual Studio 2008(无 SP1)设计选项卡控件

c++ - 常量数组放在哪里?