powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ошибка при создании класса
10 сообщений из 10, страница 1 из 1
Ошибка при создании класса
    #33655726
MaximZaikin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Создаю клас

class.h
#pragma once
class CLinkedList {
DECLARE_DYNAMIC(CLinkedList)
public:

typedef struct ServiceData {
int m_iCount;
CString m_cPortNum;
CString m_cServType;
CString m_cServName;
ServiceData* ptrNext;
ServiceData* ptrPrev;
}*ServiceData;

CLinkedList();//Конструктор
virtual ~CLinkedList();//Деструктор


ServiceData InitStruct(ServiceData* ptrStruct );

};

class.cpp
#include "LinkedList.h"



IMPLEMENT_DYNAMIC(CLinkedList, CLinkedList)


CLinkedList::CLinkedList()
{

}

CLinkedList::~CLinkedList()
{
}

ServiceData CLinkedList::InitStruct(ServiceData* ptrStruct){
return ptrStruct;
}

И получаю вот такую ошибку
error C2143: syntax error : missing ';' before 'CLinkedList::InitStruct

Ни как немогу понять в чем дело ?

Заранее благодарен Максим Заикин.
...
Рейтинг: 0 / 0
Ошибка при создании класса
    #33655731
MaximZaikin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поправка структура опредлена вот так

struct ServiceData {
int m_iCount;
CString m_cPortNum;
CString m_cServType;
CString m_cServName;
ServiceData* ptrNext;
ServiceData* ptrPrev;
};
...
Рейтинг: 0 / 0
Ошибка при создании класса
    #33656624
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximZaikinпоправка структура опредлена....


вариант намбер уан....
в ашнике, вытащить обьявление структуры из класса..

было..
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
class CLinkedList {
DECLARE_DYNAMIC(CLinkedList)
public:

typedef struct ServiceData {
int m_iCount;
CString m_cPortNum;
CString m_cServType;
CString m_cServName;
ServiceData* ptrNext;
ServiceData* ptrPrev;
}*ServiceData;

бла-бла-бла

стало...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
typedef struct ServiceData {
int m_iCount;
CString m_cPortNum;
CString m_cServType;
CString m_cServName;
ServiceData* ptrNext;
ServiceData* ptrPrev;
}*ServiceData;

class CLinkedList {
DECLARE_DYNAMIC(CLinkedList)
public:

бла-бла-бла


вариант намбер ту....
прописать "место" обьявление Вашей структуры при каждой ссылки на неё...
было...
Код: plaintext
1.
2.
3.
ServiceData CLinkedList::InitStruct(ServiceData* ptrStruct){
return ptrStruct;
}

стало...
Код: plaintext
1.
2.
3.
CLinkedList::ServiceData CLinkedList::InitStruct(ServiceData* ptrStruct){
return ptrStruct;
}


удачи Вам
(круглый)
...
Рейтинг: 0 / 0
Ошибка при создании класса
    #33657207
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
typedef struct ServiceData {
int m_iCount;
CString m_cPortNum;
CString m_cServType;
CString m_cServName;
ServiceData* ptrNext;
ServiceData* ptrPrev;
}*ServiceData;



Никогда таг нипиши, сыног... в С++.

В С++ объявление struct - всегда объявление типа.
А ты еще и тип объявляеш, указатель на структуру, который перекрывает тип самой структуры ...
...
Рейтинг: 0 / 0
Ошибка при создании класса
    #33657208
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это MFC, и у тебя DECLARE_DYNAMIC(CLinkedList), то CLinkedList должен быть унаследован от CObject.
...
Рейтинг: 0 / 0
Ошибка при создании класса
    #33657209
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ошибки компиляции я уже сказал почему. Нельзя такие typedef-ы писать...
...
Рейтинг: 0 / 0
Ошибка при создании класса
    #33657211
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как это пишется.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
class CLinkedList 
{

DECLARE_DYNAMIC(CLinkedList)
public:

struct ServiceData {
int m_iCount;
CString m_cPortNum;
CString m_cServType;
CString m_cServName;
ServiceData* ptrNext;
ServiceData* ptrPrev;
};

CLinkedList();//Конструктор -- ааа, а народ-то и не знает !!!
virtual ~CLinkedList();//Деструктор 

ServiceData* InitStruct(ServiceData* ptrStruct );

};

...
Рейтинг: 0 / 0
Ошибка при создании класса
    #33659199
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВот как это пишется.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
class CLinkedList 
{

DECLARE_DYNAMIC(CLinkedList)
public:

struct ServiceData {
int m_iCount;
CString m_cPortNum;
CString m_cServType;
CString m_cServName;
ServiceData* ptrNext;
ServiceData* ptrPrev;
};

CLinkedList();//Конструктор -- ааа, а народ-то и не знает !!!
virtual ~CLinkedList();//Деструктор 

ServiceData* InitStruct(ServiceData* ptrStruct );

};



Приношу извинения - тупо копирнул обьявление. Зив правильно подправил. Правда сам Зив, написал не тот пример...Точнее уклонился от ответа... А именно на данную опшипку влияет область видимости обьявленной переменной - в частности структуры...см. ругань компилятора...

Использование данного класса нуна делать так (в принцепе именно разрешение ЭТОЙ опшипки интересовало автора)...


Код: plaintext
1.
2.
3.
4.
5.
CLinkedList::ServiceData* InitStruct(ServiceData* ptrStruct )
{
бла-бла-бла
};



с уважением
(круглый)
...
Рейтинг: 0 / 0
Ошибка при создании класса
    #33659618
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0Использование данного класса нуна делать так (в принцепе именно разрешение ЭТОЙ опшипки интересовало автора)...

Код: plaintext
1.
2.
3.
4.
5.
CLinkedList::ServiceData* InitStruct(ServiceData* ptrStruct )
{
бла-бла-бла
};



kolobok, kolobok, я тебя съем (шутка).

Здесь это не нужно, поскольку дело происходит ВНУТРИ класса.
А если снаружи - да , надо.
...
Рейтинг: 0 / 0
Ошибка при создании класса
    #33661471
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivkolobok, kolobok, я тебя съем (шутка).

Здесь это не нужно, поскольку дело происходит ВНУТРИ класса.
А если снаружи - да , надо.

фигушки...
предлагаю проверить...я то получил такую же ругань. MFC выкинул правда - не обратил вообще внимания... фишка в том, как я полагаю - метод при возврате сам по се вернёт, без проблем. А вот как представить всё енту батву внешнему миру - тут как раз и начинается прикол...Компилятор честно и признаёться - дескать внутри то я понимаю, что это... А вот как с наружи это будут жрать - тут надобно указать, откель ты программист это взял...

лано...думаю сообща и так всё понятно...
...

с уважением
(круглый)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ошибка при создании класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]