我在第三方库中有类A
的声明,所以我无法修改它。
我需要使用类B
的声明将它传递给方法,有没有办法在不修改类A
的情况下执行它?
当我尝试这个时:
#include <iostream>
using namespace std;
class A
{
public:
union {
class B
{
public:
int x;
};
}un;
};
void foo(A::B & test)
{
}
int main() {
A::B test;
test.x=10;
cout << test.x << endl;
return 0;
}
我收到错误:
错误:
的成员B
不是A
我的假设是它发生是因为B
在一个未命名的命名空间中。
PS:如果我可以修改union
的声明
从:
union {...
为:
union T {...
这将通过以下方式完成:
A::T::B test;
答案 0 :(得分:1)