在同一个C+中访问类+;项目 在我的C++项目中,其中一个 .CPP< /Cord>文件有一个声明的类。现在,我想在同一项目中的另一个.cpp文件中实例化该类,但我收到以下错误消息: error C2248: 'Processor' : cannot access private member declared in class 'Processor' c:\Test\wrapper.cpp : see declaration of 'Processor' 错误C2248:“处理器”:无法访问类“处理器”中声明的私有成员 c:\Test\wrapper.cpp:请参见“处理器”的声明

在同一个C+中访问类+;项目 在我的C++项目中,其中一个 .CPP< /Cord>文件有一个声明的类。现在,我想在同一项目中的另一个.cpp文件中实例化该类,但我收到以下错误消息: error C2248: 'Processor' : cannot access private member declared in class 'Processor' c:\Test\wrapper.cpp : see declaration of 'Processor' 错误C2248:“处理器”:无法访问类“处理器”中声明的私有成员 c:\Test\wrapper.cpp:请参见“处理器”的声明,c++,visual-c++,C++,Visual C++,我们无法使用不同的访问说明符重新定义该类,它将获得默认的privateaccess说明符 我怎样才能做到这一点呢?你不能(至少以干净的方式),你也不应该 使字段私有(即使在默认情况下)是程序员告诉您不应该实例化此类的方式 此外,如果类是在cpp文件中定义的,则它仅在该翻译单元中可见。您不包括cpp文件。如果必须,请将定义移到标题中并包含该标题,但不要将cpp文件直接包含在cpp文件中,否则可能会导致各种问题。该类位于cpp文件中意味着您不应该从任何其他cpp文件中使用它,如果您确实需要该类,则需

我们无法使用不同的访问说明符重新定义该类,它将获得默认的
private
access说明符

我怎样才能做到这一点呢?

你不能(至少以干净的方式),你也不应该

使字段
私有(即使在默认情况下)是程序员告诉您不应该实例化此类的方式


此外,如果类是在
cpp
文件中定义的,则它仅在该翻译单元中可见。您不包括
cpp
文件。如果必须,请将定义移到标题中并包含该标题,但不要将cpp文件直接包含在cpp文件中,否则可能会导致各种问题。该类位于cpp文件中意味着您不应该从任何其他cpp文件中使用它,如果您确实需要该类,则需要将该类移动到适当的头文件并包含头文件。但在执行此操作之前,首先检查是否有其他方法可以在不公开新类的情况下执行您正在尝试执行的操作。

请注意,在MSVC++编译器上,
/CLR
选项默认为关闭。这里的代码> [C++ ] < /COD>标签这里指的是标准C++(非<代码> /CLR < /代码>)。您不必将所有内容都限定为非
/CLR
非托管的
。此外,您可以向我们展示有问题的代码吗?比如
wrapper.cpp
和声明
处理器
类的文件中的内容?您正在执行
#在第二个
.cpp
文件中包含“first.cpp”
?@Naveen-是的,我已经在那里包含了.cpp。不是吗?我应该如何更改它?如果它是
private
,您应该为它设置一个
getter
,如果没有,您不应该接触该变量。
private
变量被设置为private是有原因的,您坚持直接访问它,这表明您的程序逻辑中存在一个错误。我现在已经将类声明移到了头中。但我仍然得到了如上所述的错误。我没有任何其他可用的方法,因此我必须在非/cli项目中创建类并使用它。你能建议一些可行的好办法吗?