我在执行程序的过程中遇到了一个小问题。 有没有办法使用在另一个类中声明的结构?
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/