在我的C ++项目中,其中一个.cpp
文件声明了一个类。现在我想在同一项目中的另一个.cpp
文件中实例化此类,但是我收到此错误消息:
error C2248: 'Processor' : cannot access private member declared in class 'Processor' c:\Test\wrapper.cpp : see declaration of 'Processor'
我们无法使用不同的访问说明符重新定义类,它将获得默认的private
访问说明符。
我该如何做到这一点?
答案 0 :(得分:2)
你不能(至少以干净的方式),你不应该。
制作字段private
(即使是默认情况下)是程序员告诉你你不应该实例化这个类的方式。
此外,如果在cpp
文件中定义了一个类,它只能在该翻译单元中显示。您不包含cpp
个文件。如果必须,请在标题内移动定义并包含该定义,但不包括cpp
。
答案 1 :(得分:0)
不要将cpp文件直接包含在cpp文件中,否则可能会导致各种问题。该类位于cpp文件中意味着您不应该从任何其他cpp文件中使用它,如果您确实需要该类,则需要将该类移动到适当的标头并包含头文件。但在此之前,首先要检查是否有任何其他方法可以在不暴露新类的情况下执行您要执行的操作。