Реализация класса C ++ для начинающих классов - PullRequest
0 голосов
/ 23 марта 2012

Пожалуйста, отправьте только один zip-файл. Ваш zip-файл должен содержать следующие файлы:

  • ItemListClass.h
  • ItemListMethods.cpp
  • ItemListTests.h
  • ItemListTests.cpp
  • Makefile
  • numbers.txt

Как можно превратить в 2 cpp файлы? Значит ли это, что у меня будет 2 разных проекта и я их объединю? Я понимаю классы, но я не уверен, как их можно использовать в zip-файле.

Примечание: я не ищу код; Я ищу понимание. Может быть, кто-то сделал что-то подобное? это список покупок с целыми числами вместо предметов.

Ответы [ 5 ]

4 голосов
/ 23 марта 2012

C ++ поддерживает концепцию под названием «отдельная компиляция».

По сути, каждый файл .cpp может быть скомпилирован независимо от всех остальных, и окончательная программа создается путем «связывания» всех скомпилированных файлов.

2 голосов
/ 23 марта 2012
  • ItemListClass.h
  • ItemListMethods.cpp
  • ItemListTests.h
  • ItemListTests.cpp
  • makefile
  • numbers.txt

Это означает, что ItemListClass.h предоставляет видимый для вызывающего абонента интерфейс для вашего ItemList, а внеплановая реализация для функций-членов ItemList идет в ItemListMethods.cpp, и что тестовая программа (предположительно с функцией main() в ItemListTests.cpp) будет выполнять функциональность ItemList.Я не вижу особой причины полагать, что ItemListTests.h полезен ... все, что может содержать ItemListTests, вряд ли будет полезным для любого кода, кроме ItemListTests.cpp, и если это так, то его действительно следует переместить в "TestSupport.h "или аналогичный.Но подразумевается, что ItemListMethods.cpp должен включать ItemLists.h, а ItemListTests.cpp должен включать ItemListTests.h.numbers.txt - это предположительно входные данные, которые ваш ItemListTests.cpp прочитает, чтобы заполнить объект ItemList во время тестирования.Makefile должен делать что-то вроде:

ItemListTest: <tab> ItemList.o ItemListTest.h ItemListTest.cpp
<tab>g++ -g -o ItemListTest ItemList.o ItemListTest.cpp

ItemList.o: <tab> ItemList.h ItemList.cpp
<tab>g++ -g -c ItemList.cpp

Затем вы можете набрать «make» в том же каталоге, чтобы создать исполняемый файл ItemListTest.

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

Каждый .cpp файл реализует набор функций. Вся программа представляет собой объединение этих функций… компилятор (в частности, «компоновщик», который является последним этапом компилятора) собирает функции вместе и упаковывает их в исполняемый файл.

Проект обычно содержит множество .cpp файлов. C ++ имеет несколько правил о том, как программа разделена на них, но обычно каждый содержит один класс или группу функций.

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

1 голос
/ 23 марта 2012

Проект почти во всех IDE / компиляторах C ++ может иметь несколько исходных файлов.Обычно вы не можете скомпилировать их из zip-файла, если они не извлечены.Причина, по которой они просят почтовый индекс, заключается в том, что его очень легко отправить / отправить.Он должен быть извлечен после того, как ваш инструктор / экзаменатор получит его.

1 голос
/ 23 марта 2012

Вы должны прочитать о makefiles .

По сути, ваш make-файл является проектом, который вы отправляете, и состоит из четырех файлов.

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