Косяки с функциями в структурах
2288
13
Вообщем трабла в следующем ... Все в С++

Создал проект из двух файлов. В первом находятся шаблон структуры (в ней есть и функции-члены) а также определение функций относящихся к этой структуре (прошу заметить не КЛАСС). Во втором файле я создаю экземпляр данного структурного типа и обращаюсь к его функциям ... На этапе компиляции, выдается ошибка о том, что функции, которые были определены не являются членами данного структурного типа... :(( Что поделать .... Или скажите хотя бы почему так происходит....... Хелп !!! Срочно!!!!
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 не подключается, то все должно быть нормально. Хотя на всякий случай действительно лучше именовать иначе.
Cactus
time действительно есть, но если ничто кроме stdio.h и conio.h не подключается, то все должно быть нормально. Хотя на всякий случай действительно лучше именовать иначе.
а какая разница как обзывать, струтура должна была переопределиться все равно... а если листинг полный, то всего навсего не хватает во втором файле головняка первого и все тут ИМХО...
у тебя файл имеет расширение .c или .cpp?
в настройках проекта опция компилировать как C или как C++?
#VaGon#
[q]а какая разница как обзывать, струтура должна была переопределиться все равно[/q]
Валька, ты, кажется, уработался. Попробуй сам создать два хеадера со структурами одного названия, но разного наполнения (хотя можешь и одинакового) и включить их хоть в холостой сишник. Получишь сообщение: "Multiple declaration for 'time'". Ты кажется перепутал с перегрузкой операторов.
Cactus
Валька, ты, кажется, уработался. Попробуй сам создать два хеадера со структурами одного названия, но разного наполнения (хотя можешь и одинакового) и включить их хоть в холостой сишник. Получишь сообщение: "Multiple declaration for 'time'". Ты кажется перепутал с перегрузкой операторов.
да кажись прокосячил... сидеть на работе меньше надо...

все равно у него библиотека не подключена так что с этим косяков не должно быть
#VaGon#
все равно у него библиотека не подключена так что с этим косяков не должно быть
Об этом я упоминал. :спок:
Cactus
[цитата] [цитата] все равно у него библиотека не подключена так что с этим косяков не должно быть [/цитата]
Об этом я упоминал. :спок: [/цитата]

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