Доступ к классам в том же проекте C ++ - PullRequest
0 голосов
/ 27 марта 2012

В моем проекте C ++ один из файлов .cpp имеет объявленный класс. Теперь я хочу создать экземпляр этого класса в другом файле .cpp в том же проекте, но я получаю это сообщение об ошибке:

error C2248: 'Processor' : cannot access private member declared in class 'Processor'
    c:\Test\wrapper.cpp : see declaration of 'Processor'

Мы не можем переопределить класс, используя другой спецификатор доступа, он получает спецификатор доступа private по умолчанию.

Как я могу сделать эту работу?

Ответы [ 2 ]

2 голосов
/ 27 марта 2012

Вы не можете (по крайней мере, чисто), и вы не должны.

Создание полей private (даже по умолчанию) - это способ программиста сказать вам , что вы не должны создавать экземпляр этого класса .

Кроме того, если класс определен в файле cpp, он виден только в этой единице перевода. Вы не включаете cpp файлов. Если необходимо, переместите определение в заголовок и включите его, но не cpp.

0 голосов
/ 27 марта 2012

Не включайте файл cpp непосредственно в ваш файл cpp, это может вызвать всевозможные проблемы.Класс находится внутри файла cpp. Это означает, что вы не должны использовать его из любого другого файла cpp. Если вам действительно нужен этот класс, вам нужно переместить этот класс в соответствующий заголовок и включить файл заголовка.Но прежде чем сделать это, сначала проверьте, есть ли альтернативные способы сделать то, что вы пытаетесь сделать, не раскрывая новый класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...