3°C
завтра: 5°C
Погода в Перми
3°C
днем4°C
вечером5°C
завтра5°C
Подробно
 91,82
+0.7008
Курс USD ЦБ РФна 9 мая
91,8239
+0.7008
 98,95
+0.6399
Курс EUR ЦБ РФна 9 мая
98,9461
+0.6399
PRM.Форум /Компьютеры Интернет Связь / Программирование /

Косяки с функциями в структурах

  • Вообщем трабла в следующем ... Все в С++

    Создал проект из двух файлов. В первом находятся шаблон структуры (в ней есть и функции-члены) а также определение функций относящихся к этой структуре (прошу заметить не КЛАСС). Во втором файле я создаю экземпляр данного структурного типа и обращаюсь к его функциям ... На этапе компиляции, выдается ошибка о том, что функции, которые были определены не являются членами данного структурного типа... :(( Что поделать .... Или скажите хотя бы почему так происходит....... Хелп !!! Срочно!!!!

  • 1. Сведи код до минимума, где всё ещё не компиляется
    2. Выложи его сюда в форум (прикреплённым файлом)
    3. Параллельно спроси на rsdn.ru

  • Привет. Я бы тебе посоветовал вместо структуры создать класс...
    За неимением твоего кода - это все, что могу посоветовать...

  • За неимением кода - разницы никакой.

  • > прошу заметить не КЛАСС <
    а вот это как раз пофиг. struct A : B { /* */ }; в точности аналагично class A : public B { public: /* */ };

    > На этапе компиляции, выдается ошибка о том, что функции, которые были определены не являются членами данного структурного типа... <
    ошибся в названиях функций. или забыл продекларировать функции внутри определения структуры. или или или или.

  • Вот значиться содержимое файла с определением структуры и функций:
    #include
    #include

    struct time
    {
    int hour,min,sec;

    void Enter(int h,int m,int s);
    void Inc_dec(char key);
    void Output();
    };


    void time::Enter(int h,int m,int s)
    {
    if(h

  • Вообще-то, насколько я помню, раньше в С++ не было такого понятия - метод для структуры, только для класса. Потом расширили, но, возможно, не все компиляторы такое расширение включили.

    Другой вариант - тип time уже описан где-то еще во включаемых библиотеках.Я бы назвал TMyTime что ли.

    И еще - не вижу во втором файле include заголовка первого.

  • А еще было бы неплохо привести текст сообщения об ошибке.

    time действительно есть, но если ничто кроме stdio.h и conio.h не подключается, то все должно быть нормально. Хотя на всякий случай действительно лучше именовать иначе.

  • В ответ на: time действительно есть, но если ничто кроме stdio.h и conio.h не подключается, то все должно быть нормально. Хотя на всякий случай действительно лучше именовать иначе.
    а какая разница как обзывать, струтура должна была переопределиться все равно... а если листинг полный, то всего навсего не хватает во втором файле головняка первого и все тут ИМХО...

  • у тебя файл имеет расширение .c или .cpp?
    в настройках проекта опция компилировать как C или как C++?

  • [q]а какая разница как обзывать, струтура должна была переопределиться все равно[/q]
    Валька, ты, кажется, уработался. Попробуй сам создать два хеадера со структурами одного названия, но разного наполнения (хотя можешь и одинакового) и включить их хоть в холостой сишник. Получишь сообщение: "Multiple declaration for 'time'". Ты кажется перепутал с перегрузкой операторов.

  • В ответ на: Валька, ты, кажется, уработался. Попробуй сам создать два хеадера со структурами одного названия, но разного наполнения (хотя можешь и одинакового) и включить их хоть в холостой сишник. Получишь сообщение: "Multiple declaration for 'time'". Ты кажется перепутал с перегрузкой операторов.
    да кажись прокосячил... сидеть на работе меньше надо...

    все равно у него библиотека не подключена так что с этим косяков не должно быть

  • В ответ на: все равно у него библиотека не подключена так что с этим косяков не должно быть
    Об этом я упоминал. :спок:

  • [цитата] [цитата] РІСЃРµ равно Сѓ него библиотека РЅРµ подключена так что СЃ этим РєРѕСЃСЏРєРѕРІ РЅРµ должно быть [/цитата]
    Об этом я упоминал. :спок: [/цитата]

    молодец... хвалю... :бебе:

Записей на странице:

Перейти в форум

Модератор: