Косяки с функциями в структурах
2291
13
Вообщем трабла в следующем ... Все в С++
Создал проект из двух файлов. В первом находятся шаблон структуры (в ней есть и функции-члены) а также определение функций относящихся к этой структуре (прошу заметить не КЛАСС). Во втором файле я создаю экземпляр данного структурного типа и обращаюсь к его функциям ... На этапе компиляции, выдается ошибка о том, что функции, которые были определены не являются членами данного структурного типа... :(( Что поделать .... Или скажите хотя бы почему так происходит....... Хелп !!! Срочно!!!!
Создал проект из двух файлов. В первом находятся шаблон структуры (в ней есть и функции-члены) а также определение функций относящихся к этой структуре (прошу заметить не КЛАСС). Во втором файле я создаю экземпляр данного структурного типа и обращаюсь к его функциям ... На этапе компиляции, выдается ошибка о том, что функции, которые были определены не являются членами данного структурного типа... :(( Что поделать .... Или скажите хотя бы почему так происходит....... Хелп !!! Срочно!!!!
Lost__Shadow
activist
1. Сведи код до минимума, где всё ещё не компиляется
2. Выложи его сюда в форум (прикреплённым файлом)
3. Параллельно спроси на rsdn.ru
2. Выложи его сюда в форум (прикреплённым файлом)
3. Параллельно спроси на rsdn.ru
Привет. Я бы тебе посоветовал вместо структуры создать класс...
За неимением твоего кода - это все, что могу посоветовать...
За неимением твоего кода - это все, что могу посоветовать...
> прошу заметить не КЛАСС <
а вот это как раз пофиг. struct A : B { /* */ }; в точности аналагично class A : public B { public: /* */ };
> На этапе компиляции, выдается ошибка о том, что функции, которые были определены не являются членами данного структурного типа... <
ошибся в названиях функций. или забыл продекларировать функции внутри определения структуры. или или или или.
а вот это как раз пофиг. 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
#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 уже описан где-то еще во включаемых библиотеках.Я бы назвал TMyTime что ли.
И еще - не вижу во втором файле include заголовка первого.
Сейчас читают
Тэтчер
38742
177
обсуждение слайдов (часть 3)
225437
1000
Красота для мужчин.
292162
1000
А еще было бы неплохо привести текст сообщения об ошибке.
time действительно есть, но если ничто кроме stdio.h и conio.h не подключается, то все должно быть нормально. Хотя на всякий случай действительно лучше именовать иначе.
time действительно есть, но если ничто кроме stdio.h и conio.h не подключается, то все должно быть нормально. Хотя на всякий случай действительно лучше именовать иначе.
time действительно есть, но если ничто кроме stdio.h и conio.h не подключается, то все должно быть нормально. Хотя на всякий случай действительно лучше именовать иначе.а какая разница как обзывать, струтура должна была переопределиться все равно... а если листинг полный, то всего навсего не хватает во втором файле головняка первого и все тут ИМХО...
у тебя файл имеет расширение .c или .cpp?
в настройках проекта опция компилировать как C или как C++?
в настройках проекта опция компилировать как C или как C++?
[q]а какая разница как обзывать, струтура должна была переопределиться все равно[/q]
Валька, ты, кажется, уработался. Попробуй сам создать два хеадера со структурами одного названия, но разного наполнения (хотя можешь и одинакового) и включить их хоть в холостой сишник. Получишь сообщение: "Multiple declaration for 'time'". Ты кажется перепутал с перегрузкой операторов.
Валька, ты, кажется, уработался. Попробуй сам создать два хеадера со структурами одного названия, но разного наполнения (хотя можешь и одинакового) и включить их хоть в холостой сишник. Получишь сообщение: "Multiple declaration for 'time'". Ты кажется перепутал с перегрузкой операторов.
Валька, ты, кажется, уработался. Попробуй сам создать два хеадера со структурами одного названия, но разного наполнения (хотя можешь и одинакового) и включить их хоть в холостой сишник. Получишь сообщение: "Multiple declaration for 'time'". Ты кажется перепутал с перегрузкой операторов.да кажись прокосячил... сидеть на работе меньше надо...
все равно у него библиотека не подключена так что с этим косяков не должно быть
все равно у него библиотека не подключена так что с этим косяков не должно бытьОб этом я упоминал.
[цитата] [цитата] все равно у него библиотека не подключена так что с этим косяков не должно быть [/цитата]
Об этом я упоминал. :спок: [/цитата]
молодец... хвалю...
Об этом я упоминал. :спок: [/цитата]
молодец... хвалю...