Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> файл *.h не компилируется на BC++ 3.1, в чем ошибка, что не так? 
V
    Опции темы
SergeyMitrofanov
  Дата 30.1.2006, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 30.1.2006

Репутация: нет
Всего: нет



Compiler: BC++ 3.1
File: point.h

Нижележащий код не компилируется.
В 4-ой и 15-ой строке выдается ошибка: "Declaration syntax error"
В чем дело, почему?

Cod:

# ifndef POINT_H
# define POINT_H

class tochka
{
public:
double x;
double y;

public:
// constructor
tochka (double, double);
};

tochka :: tochka (
double x1,
double y1
)
{
x = x1;
y = y1;
}

# endif POINT_H
PM MAIL WWW   Вверх
volvo877
Дата 30.1.2006, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 1
Всего: 116



А ты что, прямо этот Header компилируешь? Подключи его к CPP (через #include), и все будет компилироваться как положено...
PM MAIL   Вверх
SergeyMitrofanov
Дата 31.1.2006, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 30.1.2006

Репутация: нет
Всего: нет



Да, компилирую просто так. Более того, если я этот файл подключу к проекту. то в проекте он тоже не будет компилироваться.

Некомпилирующийся Proect такой:

point1.cpp
point.h

Ошибки будут те же самые

PM MAIL WWW   Вверх
volvo877
Дата 31.1.2006, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 1
Всего: 116



А ты пробовал? Только НЕ включай H файл в проект !!! Я говорил о подключении к СРР! Читай, что тебе пишут...

СРР должен начинаться так:
Код

#include "POINT.H"

...
// Здесь все остальное


У меня только что все "на ура" откомпилировалось.
PM MAIL   Вверх
Mayk
Дата 1.2.2006, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(volvo877 @ 1.2.2006, 00:43 Найти цитируемый пост)

только НЕ включай H файл в проект !!!

+ перекиньте это в .cpp
Цитата(SergeyMitrofanov @ 31.1.2006, 00:33 Найти цитируемый пост)

tochka :: tochka (
double x1,
double y1
)
{
x = x1;
y = y1;
}




--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
SergeyMitrofanov
Дата 4.2.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 30.1.2006

Репутация: нет
Всего: нет



Цитата(volvo877 @ 31.1.2006, 20:43)
А ты пробовал?

  -- да, пробовал. Разве просто файл *.h компилировать нельзя?

Только НЕ включай H файл в проект !!!

  -- А почему? Как раз я и хочу, в окончательном варианте иметь именно проект, и его компилировать целиком.

Я говорил о подключении к СРР! Читай, что тебе пишут...

  -- то, что файл *.cpp будет компилироваться, я и не сомневаюсь. Мой вопрос состоял в том, почему не компилируется отдельно взятый файл *.h и, более того, как я потом добавил, он и не компилируется в проекте, если его туда вставить.

СРР должен начинаться так:
Код

#include "POINT.H"

...
// Здесь все остальное


У меня только что все "на ура" откомпилировалось.

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

Вот такой проект не компилируется:

examp.prj
  point1.cpp
  point.h


File: point.h
Код

# ifndef POINT_H
        # define POINT_H

        class tochka
        {
          public:
            double x;
            double y;

          public:
            // constructor
            tochka (double, double);
        };



        tochka :: tochka (
                           double x1,
                           double y1
                         )
        {
          x = x1;
          y = y1;
        }

        # endif POINT_H




File: point1.cpp
Код

# include <iostream.h>
        # include <conio.h>
        # include "point.h"

        int main ()
        {
          clrscr ();

          tochka o1 (1.0, 1.0);

          getch ();
          return 0;
        }

 
Такой проект не компилируется. Почему?





Это сообщение отредактировал(а) SergeyMitrofanov - 4.2.2006, 14:44

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  Point.h 0,46 Kb
PM MAIL WWW   Вверх
Mayk
Дата 4.2.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Компилировать хедеры - моветон.
Хотя бы потому, что bc31 по умолчанию компилирует его как Си.
Копаем настройки в сторону force c++ compilation, если так хочется компилировать .h




--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
SergeyMitrofanov
  Дата 4.2.2006, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 30.1.2006

Репутация: нет
Всего: нет



[QUOTE=Mayk,4.2.2006, 14:41]Компилировать хедеры - моветон.

-- "моветон" - в каком смысле?

Хотя бы потому, что bc31 по умолчанию компилирует его как Си.
-- так... большое спасибо, это уже многое поясняет.

Копаем настройки в сторону force c++ compilation, если так хочется компилировать .h
-- буду копать, может быть, специалист в BC++ 3.1 сюда заглянет, вдруг, мне подскажет...

-- получается так, что для компиляции проектов, написанных на С++ мне нужно выстаить опредленные настройки, попробую их эмпирически найти.




[/QUOTE]


PM MAIL WWW   Вверх
Mayk
Дата 4.2.2006, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(SergeyMitrofanov @ 4.2.2006, 19:12 Найти цитируемый пост)

-- "моветон" - в каком смысле?

Хедеры - на то и хедеры, чтоб их включать, а не собирать.

Цитата(SergeyMitrofanov @ 4.2.2006, 19:12 Найти цитируемый пост)

-- получается так, что для компиляции проектов, написанных на С++ мне нужно выстаить опредленные настройки,

Вывод не верен. BC достачно умён, чтобы понять что .cpp файлы(и подключаемые из них) нужно компилировать как c++.

зы. [offtop] хинт. мы очень рады, что Вы научились пользоваться кнопками для изменения размера и цвета, однако использование кнопки "Быстрая цитата" делает текст куда более читабельным. [/offtop]



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
SergeyMitrofanov
  Дата 5.2.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 30.1.2006

Репутация: нет
Всего: нет



Вот такой проект не компилируется на BC++ 3.1 :

examp.prj
point1.cpp
point.h

File: point.h
Код
 

        # ifndef POINT_H
        # define POINT_H

        class tochka
        {
          public:
            double x;
            double y;

          public:
            // constructor
            tochka (double, double);
        };

        tochka :: tochka (
                                     double x1,
                                     double y1
                                  )
        {
          x = x1;
          y = y1;
        }

        # endif POINT_H



File: point1.cpp
Код


        # include <iostream.h>
        # include <conio.h>
        # include "point.h"

        int main ()
        {
          clrscr ();

          tochka o1 (1.0, 1.0);

          getch ();
          return 0;
        }


Такой проект не компилируется. Почему?


PM MAIL WWW   Вверх
Mayk
Дата 5.2.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



что говорит?


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
SergeyMitrofanov
Дата 5.2.2006, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 30.1.2006

Репутация: нет
Всего: нет



Цитата(Mayk @ 5.2.2006, 15:36)
что говорит?

выдается ошибка: "Declaration syntax error"


PM MAIL WWW   Вверх
Mayk
Дата 5.2.2006, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



SergeyMitrofanov
smile Компилятор еще говорит ГДЕ.

и еще
Цитата(volvo877 @ 1.2.2006, 00:43 Найти цитируемый пост)

Только НЕ включай H файл в проект !!!


еще раз
Цитата(volvo877 @ 1.2.2006, 00:43 Найти цитируемый пост)

Только НЕ включай H файл в проект !!!



Цитата(SergeyMitrofanov @ 5.2.2006, 18:14 Найти цитируемый пост)

examp.prj
point1.cpp
point.h

ещё раз
Цитата(volvo877 @ 1.2.2006, 00:43 Найти цитируемый пост)

Только НЕ включай H файл в проект !!!

Цитата(SergeyMitrofanov @ 5.2.2006, 18:14 Найти цитируемый пост)

examp.prj
point1.cpp
point.h

Цитата(volvo877 @ 1.2.2006, 00:43 Найти цитируемый пост)

Только НЕ включай H файл в проект !!!




--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Kagor
Дата 5.2.2006, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Debian user
****


Профиль
Группа: Экс. модератор
Сообщений: 2946
Регистрация: 28.2.2003
Где: Королевство Кривых

Репутация: нет
Всего: 85



Код

#ifndef POINT_H
#define POINT_H
        class tochka
        {
          public:
            double x;
            double y;
          public:
            // constructor
            tochka (double, double);
        };
        tochka :: tochka (
                                     double x1,
                                     double y1
                                  )
        {
          x = x1;
          y = y1;
        }
#endif POINT_H

Код

#include <iostream.h>
#include <conio.h>
#include "point.h"
int main ()
{
          clrscr ();
          tochka o1 (1.0, 1.0);
          getch ();
          return 0;
}

Я проект не создавал, просто сменил текущею директорию в BC++ 3.1, открыл cpp'шник, все нормально скомпилировалось.
Добавлено @ 16:56
Сделал проект, опять все нормально скомпилировалось.

Это сообщение отредактировал(а) Kagor - 5.2.2006, 17:00


--------------------
Disassemble Your life and get the key!
PM ICQ GTalk Jabber   Вверх
SergeyMitrofanov
  Дата 5.2.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 30.1.2006

Репутация: нет
Всего: нет



Mayk
Цитата

Цитата(volvo877 @ 1.2.2006, 00:43 )

Только НЕ включай H файл в проект !!!



Да, на самом деле, если из проекта убрать *.h, то все копилируется на ура!

Спасибо!
До этого дня, во все проекты, которые создавал, я включал файлы *.h и все компилировалось без проблем, совсем недавно это стало нетак...

Еще раз спасибо за помощь!
Добавлено @ 17:22
Kagor
Цитата

Я проект не создавал, просто сменил текущею директорию в BC++ 3.1, открыл cpp'шник, все нормально скомпилировалось.


У меня без проекта это также компилируется без проблем.

Цитата

Добавлено @ 16:56
Сделал проект, опять все нормально скомпилировалось
.

-- Интересно, а в проект включался ли *.h?
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0962 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.