Как импортировать класс, который не находится внутри заголовочного файла - PullRequest
0 голосов
/ 02 мая 2020

Я относительно новичок в c ++. Так что извиняюсь, если это д наивно. Но я не мог получить ответ, поэтому спрашиваю его здесь.

У меня есть существующий. cpp файл (один. cpp), в котором определен класс (класс A), определенный внутри него (один. cpp не имеет соответствующего one.h). Теперь я хочу, чтобы другой класс (класс B) в другом файле (two.h) расширял класс A. Но поскольку A не находится внутри заголовка, я не могу сделать #include one.h

Я думаю о создании one.h, но класс A огромен, поэтому стараюсь его избегать. Есть ли более простой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Вы можете включить one.cpp в файл two.h, например #include "one.cpp". Однако это считается плохой практикой. Что вы должны сделать, это создать файл заголовка для вашего класса A.

Имейте в виду, что вам не нужно фактически реализовывать класс в файле заголовка.

0 голосов
/ 02 мая 2020

Чтобы компоновщик мог идентифицировать класс A в two.h, ему потребуется ссылка на этот класс через файл заголовка. Насколько я знаю, пути к этому нет.

Имейте в виду, что вам нужно всего лишь поместить прототипы функций в заголовок, а не фактическое определение.

...