Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2011, 19:42   #11
EniOk
Пользователь
 
Аватар для EniOk
 
Регистрация: 07.06.2009
Сообщений: 43
По умолчанию

Извините, Obey-Kun, но венгерскую нотацию я по соображеиям привычки использую только для классов.

typedef же я использую для создания псевдонима типа, и вроде для этого он и нужен.

profi, попробую... но этот бред от Майкрософта требуют препода... а я ваще g++ люблю и гини... Убунтист я :-[

Последний раз редактировалось EniOk; 28.02.2011 в 19:54.
EniOk вне форума Ответить с цитированием
Старый 28.02.2011, 19:47   #12
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Тут он не нужен, без него всё будет так же.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 28.02.2011, 19:48   #13
EniOk
Пользователь
 
Аватар для EniOk
 
Регистрация: 07.06.2009
Сообщений: 43
По умолчанию

profi, кстати не помогло... там и проблема то в том что
Цитата:
C:\DOCUMENTS AND SETTINGS\USER1\ÐÀÁÎ×ÈÉ ÑÒÎË\stack\stack.cpp(54) : error C2440: '=' : cannot convert from 'struct STACKEL<int> *' to 'struct STACKEL *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
C:\DOCUMENTS AND SETTINGS\USER1\ÐÀÁÎ×ÈÉ ÑÒÎË\stack\stack.cpp(17) : while compiling class-template member function 'struct STACKEL<int> *__thiscall CStack<int>::Push(int)'
в строке
Код:
Element->Next = CStack::top;
EniOk вне форума Ответить с цитированием
Старый 28.02.2011, 19:56   #14
alex_x_x
Форумчанин
 
Регистрация: 31.01.2011
Сообщений: 160
По умолчанию

Цитата:
Сообщение от EniOk Посмотреть сообщение
Извините, Obey-Kun, но венгерскую нотацию я по соображеиям привычки использую только для классов.

typedef же я использую для создания псевдонима типа, и вроде для этого он и нужен.

profi, попробую... но этот бред от Майкрософта требуют препода... а я ваще g++ люблю и гини... Убунтист я :-[
псевдонимы требуются для си, раз тут шаблоны то ни о каком си и его заморочках речь не идет
в с++ имя типа полностью его определяет (без сишных тегов)
alex_x_x вне форума Ответить с цитированием
Старый 01.03.2011, 20:00   #15
EniOk
Пользователь
 
Аватар для EniOk
 
Регистрация: 07.06.2009
Сообщений: 43
По умолчанию

К сожалению ошибка не исчезла, а я не понимаю что ей надо...
EniOk вне форума Ответить с цитированием
Старый 01.03.2011, 21:34   #16
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Код:
template <class Type>  struct STACKEL
{
	Type Value;
	STACKEL<Type>  *Next;
	
};

template <class Type> class CStack
{
private:
	STACKEL<Type>* top;
public:
	CStack()
	{
		CStack::top = NULL;
	}
	Type ShowTop();
	STACKEL<Type>* ShowTopAdress();
	STACKEL<Type>* Push(Type);
	Type Pop();

};

template <class Type> STACKEL<Type>* CStack<Type>::Push(Type Value)
{
	STACKEL<Type>* Element = (STACKEL<Type>*) malloc(sizeof(STACKEL<Type>));
	Element->Next = CStack::top;
	Element->Value = Value;
	CStack::top = Element;
	return Element;
};
а так не заработает?
убрал слово struct оно там явно излишне

да и будьте человеком, пишите top а не CStack::top

Последний раз редактировалось onewho; 01.03.2011 в 21:37.
onewho вне форума Ответить с цитированием
Старый 01.03.2011, 21:52   #17
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
Сообщение от onewho Посмотреть сообщение
да и будьте человеком, пишите top а не CStack::top
Зачем? Только усложняет всё.
И вообще, стак надо делать не структурой в стиле C, а полноценным классом, с приватными полями и шлюхами. А там приватные поля уже назвать m_top или типа того.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 01.03.2011 в 21:56.
Obey-Kun вне форума Ответить с цитированием
Старый 02.03.2011, 15:43   #18
EniOk
Пользователь
 
Аватар для EniOk
 
Регистрация: 07.06.2009
Сообщений: 43
По умолчанию

Cпасибо) помогло)
EniOk вне форума Ответить с цитированием
Старый 02.03.2011, 15:51   #19
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
Зачем? Только усложняет всё.
не совсем понял, переменную без оператора расширения области видимости и мы и так можем использовать только в методах, так что с этим проблем не будет.
ну если ваше желание- так отличить члены от параметров и локальных переменных, то оно мне понятно, возможно в больших программах и пригодится.
onewho вне форума Ответить с цитированием
Старый 02.03.2011, 16:55   #20
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
так отличить члены от параметров и локальных переменных, то оно мне понятно, возможно в больших программах и пригодится.
Можно бы было просто написать this->имя_поля. Это более универсальная практика, тем более вам будет проще, если будете переименовывать класс.
Но таки надо уяснить 2 вещи:
1) Ну приватные поля НЕЛЬЗЯ! Это противоречит основам ООП.
2) Отличать приватные поля от прочего ОБЯЗАТЕЛЬНО в любом проекте. В любом coding style convention просят.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 02.03.2011 в 17:01.
Obey-Kun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шаблоны Freddi Krjuger Общие вопросы C/C++ 6 14.11.2010 20:55
Шаблоны С++ Secc Помощь студентам 4 27.12.2009 17:35
Для чего используют typedef prikolist Общие вопросы C/C++ 17 16.04.2009 15:36
Использование typedef с vector <type> kezman Общие вопросы C/C++ 2 19.07.2008 21:17
Шаблоны bondik Общие вопросы C/C++ 10 04.05.2008 09:50