Проблема с классом для обработки строк - PullRequest
1 голос
/ 31 июля 2011

Я читаю строки из текстового файла и хотел бы использовать повторяющиеся разделители как \ t \ t. Обычно у меня есть разделитель между параметрами, но для удобства чтения иногда полезно использовать строки как \ t \ t \ t для выравнивания текстовых последовательностей.

Я написал класс в своем main.cpp, который работал хорошо. Поскольку я хотел бы сохранить мой main.cpp максимально компактным, я попытался создать файл класса с файлом заголовка. Я сделал предварительное объявление в заголовочном файле и вставил член рабочего класса в файл class.cpp.

Класс использует переменные строкового типа, которые объявлены в class.cpp. При компиляции выдает ошибку, в которой говорится, что «строка не называет тип». Я думаю, что-то не так с моментом, когда я включаю заголовок string.h.

Он включен в файл Main.cpp. Должен ли я включить его также в заголовочный файл для класса или в файл class.cpp. Из предыдущих обменов я понял, что следует избегать включения библиотек повсюду.

Заранее спасибо,

Stefan

Ответы [ 3 ]

1 голос
/ 31 июля 2011

Вам необходимо включить файл .h во все другие файлы (.h или .cpp), которые используют типы / функции, которые вы объявляете в заголовке.

class.cpp должен включать class.h.main.cpp должен включать class.h, если он использует ваш класс строки.

1 голос
/ 31 июля 2011

Если вы хотите использовать C ++ std::string, вы должны включить заголовок <string>.

Аналогично названный <string.h> предназначен для строковых функций языка C.

1 голос
/ 31 июля 2011

Заголовочные файлы должны быть автономными , то есть включать в себя все, что им нужно для себя (например, типы, к которым они относятся).Чтобы предотвратить плохую работу и другие проблемы, так называемые включают защитные устройства , предотвращающие повторное включение.

...