Включить файлы в c ++? - PullRequest
       18

Включить файлы в c ++?

0 голосов
/ 22 февраля 2011

Мне было интересно, как включить файлы в C ++ ... Я смотрел на множество разных вещей и не мог понять это. Я просто хочу включить другую функцию или метод, или, если вы ее вызываете.

Я знаю, что вам нужно как #include "filename.cpp"; но я не знаю, как использовать вещи из файла filename.cpp или .h или w / e, который вы хотите назвать.

Спасибо, я знаю, что Java прекрасно, если вы можете объяснить это, хотя это. (Похоже, это не то же самое, что Java).

Ответы [ 4 ]

2 голосов
/ 22 февраля 2011

Обычно в заголовках идут объявления, а в исходных файлах - реализация.Хотя для шаблонов есть исключение.Помните, что компилируются только исходные файлы.Таким образом, все символы, присутствующие в исходном файле, должны быть известны компилятору.Теперь рассмотрим пример -

foo.h

struct foo
{
    int number ;
    foo( int x );
};

foo.cpp

Теперьэто метод, который не реализован в struct foo, т.е. конструктор.Если вам нужно реализовать это в отдельном исходном файле, вам нужно #include "foo.h".Без этого, если вы просто продолжите реализовывать его методы, компилятор не знает, что такое "foo".

#include "foo.h"

foo::foo( int x )
{
     number = x; // This can be achieved through initializer lists too.
}

Еще до этапа компиляции препроцессор копирует содержимое foo.h в foo.cpp.После предварительной обработки исходный foo.cpp превращается в -

struct foo
{
    int number ;
    foo( int x );
};

foo::foo( int x )
{
     number = x; // This can be achieved through initializer lists too.
}

Теперь каждый метод / символ, который определяется / используется в исходном файле, известен компилятору, которому он передается.И вообще, соответствующий исходный файл x.h будет x.cpp.Также знайте, что каждый исходный файл проходит эти этапы, чтобы получить окончательный исполняемый файл.( PreProcessor -> Компилятор -> Линкер ).Надеюсь, это поможет до такой степени.

2 голосов
/ 22 февраля 2011

Включаемые файлы используются для описания интерфейсов или классов, которые должны использоваться другими элементами вашего приложения. По сути, описание вашего класса включено в файл заголовка (.h). Реализация класса содержится в исходном (.cpp) файле. Например:

Ваш заголовочный файл выглядит примерно так:

// MyClass.h
class MyClass {
public:
    MyClass();
    void Method1();
    ...
};

Ваш файл реализации выглядит примерно так:

// MyClass.cpp
MyClass::MyClass() {
    // implementation details
}

void MyClass::Method1() {
    // implementation details
}

Теперь любой, кому нужно использовать MyClass, будет включать MyClass.h следующим образом:

#include "MyClass.h"

Надеюсь, это поможет.

1 голос
/ 22 февраля 2011

Соглашение должно включать только файлы заголовка (* .h или * .hpp).Эти файлы обычно используются для определения типов и макросов и т. Д.

То, как вы его используете, зависит от того, что делают ваши приложения - вы были довольно расплывчаты.Например, если вы определяете класс, обычно объявляют класс и его члены в заголовочном файле.Фактический код для методов можно поместить в файл * .cpp.

Пока вы #include заголовочный файл, компилятор знает, какой синтаксис нужен этим методам.

0 голосов
/ 22 февраля 2011

Включение файла в c ++ отличается между файлом стандартной библиотеки и файлами, определенными программистом.

Для стандартной библиотеки пишем:

#include <FileName>

в то время как для программируемых файлов мы пишем:

#include "FileDestination\FileName.extension"

обратите внимание, что нет точек с запятой.

если материал, который вы хотите использовать, находится в пространстве имен, вы должны либо упомянуть пространство имен, либо использовать его, чтобы использовать пространство имен, напишите:

using namespace NAMESPACE_NAME;

упомянуть пространство имен без его использования легко, как написать:

std::cout << "Hello, World!\n";

Надеюсь, что это полезно !, и мне очень жаль моего плохого английского.

...