Класс дерева
От: ЛИСА  
Дата: 24.12.01 18:47
Оценка:
Пыаюсь описать класс:
class CMyTree
{
public:
CMyTree();
virtual ~CMyTree();
vector<CMyTree*> Children;
};

VC выдаёт слудующее:

error C2143: syntax error : missing ';' before '<'
error C2501: 'vector' : missing storage-class or type specifiers и т.д.

Что сделать, чтобы он это проглотил?
Re: Класс дерева
От: Андрей Тарасевич Беларусь  
Дата: 24.12.01 19:06
Оценка:
Здравствуйте ЛИСА, Вы писали:

ЛИСА>Пыаюсь описать класс:

ЛИСА>class CMyTree
ЛИСА>{
ЛИСА>public:
ЛИСА> CMyTree();
ЛИСА> virtual ~CMyTree();
ЛИСА> vector<CMyTree*> Children;
ЛИСА>};

ЛИСА>VC выдаёт слудующее:


ЛИСА>error C2143: syntax error : missing ';' before '<'

ЛИСА>error C2501: 'vector' : missing storage-class or type specifiers и т.д.

ЛИСА>Что сделать, чтобы он это проглотил?


Класс называется 'std::vector', а не 'vector'. Если не хочешь везде писать префикс 'std::', сделай предварительно 'using namespace std'. И не забудь включить заголовок 'vector'.
Best regards,
Андрей Тарасевич
Re: Класс дерева
От: Юнусов Булат Россия  
Дата: 24.12.01 19:08
Оценка: 3 (1)
Здравствуйте ЛИСА, Вы писали:

ЛИСА>Пыаюсь описать класс:

ЛИСА>class CMyTree
ЛИСА>{
ЛИСА>public:
ЛИСА> CMyTree();
ЛИСА> virtual ~CMyTree();
ЛИСА> vector<CMyTree*> Children;
ЛИСА>};

ЛИСА>VC выдаёт слудующее:


ЛИСА>error C2143: syntax error : missing ';' before '<'

ЛИСА>error C2501: 'vector' : missing storage-class or type specifiers и т.д.

ЛИСА>Что сделать, чтобы он это проглотил?


#include <vector>
using namespace std;

это лучше в stdafx.h вставить
Re[2]: Класс дерева
От: Юнусов Булат Россия  
Дата: 24.12.01 19:23
Оценка:
Здравствуйте Юнусов Булат, Вы писали:

ЮБ>Здравствуйте ЛИСА, Вы писали:


ЛИСА>>Пыаюсь описать класс:

ЛИСА>>class CMyTree
ЛИСА>>{
ЛИСА>>public:
ЛИСА>> CMyTree();
ЛИСА>> virtual ~CMyTree();
ЛИСА>> vector<CMyTree*> Children;
ЛИСА>>};

ЛИСА>>VC выдаёт слудующее:


ЛИСА>>error C2143: syntax error : missing ';' before '<'

ЛИСА>>error C2501: 'vector' : missing storage-class or type specifiers и т.д.

ЛИСА>>Что сделать, чтобы он это проглотил?


ЮБ>#include <vector>

ЮБ>using namespace std;

ЮБ>это лучше в stdafx.h вставить


Ой — не заметил что Андрей уже написал — у меня форум через кажные 5 мин обновляется
Re[2]: Класс дерева
От: Bell Россия  
Дата: 25.12.01 05:39
Оценка:
Здравствуйте Юнусов Булат, Вы писали:


ЮБ>#include <vector>

ЮБ>using namespace std;

ЮБ>это лучше в stdafx.h вставить


конструкцию "using namespace std;" в хедеры вставлять — последнее дело. Лучше не полениться, и написать std:: в нужных местах хедера, а using namespace std вставить в нужный .cpp — файл
Любите книгу — источник знаний (с) М.Горький
Re[3]: Класс дерева
От: PPA Казахстан  
Дата: 25.12.01 05:45
Оценка:
Здравствуйте Bell, Вы писали:

B>Здравствуйте Юнусов Булат, Вы писали:



ЮБ>>#include <vector>

ЮБ>>using namespace std;

ЮБ>>это лучше в stdafx.h вставить


B>конструкцию "using namespace std;" в хедеры вставлять — последнее дело. Лучше не полениться, и написать std:: в нужных местах хедера, а using namespace std вставить в нужный .cpp — файл


И чем это лучше?
--
~PPA() {} //
Re[4]: Класс дерева
От: Bell Россия  
Дата: 25.12.01 06:19
Оценка:
Здравствуйте PPA, Вы писали:

PPA>И чем это лучше?


Лучше это тем, что в любом файле можно точно знать в каком namespace ты находишься. Если же using namespace записать в хедере, а этот хедер заинклудить в другой хедер, а тот в свою очередь подключить к какому-нибудь cpp файлу, то уже совсем не очевидно, что данный cpp файл юзает namespace std (надеюсь, что смысл понятен ). А такие вещи могут приводить к очень неприятным результатам...
Например: вставляем в stdAfx.h строчки


#include <vector>
using namespace std;



а в любой cpp файл проекта к примеру строчку


#include <ios.h>



компилим проект, и любуемся результатами...
Любите книгу — источник знаний (с) М.Горький
Re[5]: Класс дерева
От: Юнусов Булат Россия  
Дата: 25.12.01 07:53
Оценка:
Здравствуйте Bell, Вы писали:

B>Здравствуйте PPA, Вы писали:


PPA>>И чем это лучше?


B>Лучше это тем, что в любом файле можно точно знать в каком namespace ты находишься. Если же using namespace записать в хедере, а этот хедер заинклудить в другой хедер, а тот в свою очередь подключить к какому-нибудь cpp файлу, то уже совсем не очевидно, что данный cpp файл юзает namespace std (надеюсь, что смысл понятен ). А такие вещи могут приводить к очень неприятным результатам...

B>Например: вставляем в stdAfx.h строчки


B>
B>#include <vector>
B>using namespace std;
B>



B>а в любой cpp файл проекта к примеру строчку



B>
B>#include <ios.h>
B>



B>компилим проект, и любуемся результатами...


Это лечится:
#include <ios>


А вообще конечно ты прав — просто если проект достаточно тривиальный, то можно и поленится немножко
Re[6]: Класс дерева
От: Bell Россия  
Дата: 25.12.01 08:22
Оценка:
Здравствуйте Юнусов Булат, Вы писали:

ЮБ>А вообще конечно ты прав — просто если проект достаточно тривиальный, то можно и поленится немножко


Когда маленький — можно и полениться, а вот когда большой.....
Я тут недавно почти целый день убил на то, чтобы повыкусывать такие вещи из довольно объемного проекта, так что теперь для себя решил никогда в хедерах using namespace не писать.
Любите книгу — источник знаний (с) М.Горький
Re: Класс дерева
От: KoraK Россия http:\\none.ru
Дата: 25.12.01 08:37
Оценка:
Здравствуйте ЛИСА, Вы писали:

ЛИСА>Пыаюсь описать класс:

ЛИСА>class CMyTree
ЛИСА>{
ЛИСА>public:
ЛИСА> CMyTree();
ЛИСА> virtual ~CMyTree();
ЛИСА> vector<CMyTree*> Children;
ЛИСА>};

ЛИСА>VC выдаёт слудующее:


ЛИСА>error C2143: syntax error : missing ';' before '<'

ЛИСА>error C2501: 'vector' : missing storage-class or type specifiers и т.д.

ЛИСА>Что сделать, чтобы он это проглотил?


hm ... a kak naschet
#include <vector.h> ?
Re[2]: Класс дерева
От: volk  
Дата: 25.12.01 09:58
Оценка:
Здравствуйте KoraK, Вы писали:
KK>hm ... a kak naschet
KK>#include <vector.h> ?

Сначала напишите этот <vector.h>, а потом подключайте.
Тот, кто желает, но не делает, распространяет чуму.
Re[3]: Класс дерева
От: KoraK Россия http:\\none.ru
Дата: 25.12.01 10:01
Оценка:
Здравствуйте volk, Вы писали:

V>Здравствуйте KoraK, Вы писали:

KK>>hm ... a kak naschet
KK>>#include <vector.h> ?

V>Сначала напишите этот <vector.h>, а потом подключайте.

^^^^^^^^

не понял : ) это стандартный файл с контейнером vector
в комплект вижуалки входит — если его нет — то можно STL скачать отдельно
www.stl.org кажется ....
Re[3]: Класс дерева
От: KoraK Россия http:\\none.ru
Дата: 25.12.01 10:05
Оценка:
Здравствуйте volk, Вы писали:

V>Здравствуйте KoraK, Вы писали:

KK>>hm ... a kak naschet
KK>>#include <vector.h> ?

V>Сначала напишите этот <vector.h>, а потом подключайте.


#include <vector>

using namespace std
Re[3]: Класс дерева
От: KoraK Россия http:\\none.ru
Дата: 25.12.01 10:08
Оценка:
Здравствуйте volk, Вы писали:

V>Здравствуйте KoraK, Вы писали:

KK>>hm ... a kak naschet
KK>>#include <vector.h> ?

V>Сначала напишите этот <vector.h>, а потом подключайте.


[code]
#include "stdafx.h"
#include <vector>

using namespace std;

class CMyTree
{
public:
CMyTree();
virtual ~CMyTree();
vector<CMyTree*> Children;
};


int main(int argc, char* argv[])
{
CMyTree my_tree();
return 0;
}
[\code]
Re: Класс дерева
От: Dr_Sh0ck Беларусь  
Дата: 25.12.01 10:55
Оценка:
Здравствуйте ЛИСА, Вы писали:

ЛИСА>Пыаюсь описать класс:

ЛИСА>class CMyTree
ЛИСА>{
ЛИСА>public:
ЛИСА> CMyTree();
ЛИСА> virtual ~CMyTree();
ЛИСА> vector<CMyTree*> Children;
ЛИСА>};

ЛИСА>VC выдаёт слудующее:


ЛИСА>error C2143: syntax error : missing ';' before '<'

ЛИСА>error C2501: 'vector' : missing storage-class or type specifiers и т.д.

ЛИСА>Что сделать, чтобы он это проглотил?


Дело в том, что стандартная библиотека определена в пространстве имен std. Поэтому надо либо добавить к vector std::, либо в начале файла указать using namespace std;
Do not fake yourself ;)
ICQ#: 198114726
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.