Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 23 из 87<  1 ... 20  21  22  23  24  25  26 ... 87  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 11.04.2004
Откуда: СПБ
что такое "getche"?



Партнер
 

Member
Статус: Не в сети
Регистрация: 12.12.2003
Откуда: Уфа
Daemon
Daemon писал(а):
А вообще - это порочная практика, глобальные переменные.

То есть предпочтительно пользоваться вариантом, который предложил mein?Или с точки зрения структуры программы, нужно проектировать без них? Но в моем конкретном случае без этих глобальных переменных не обойтись-они должны быть одни для всех объектов класса в программе(а их много). Но при варианте mein при изменении какой-либо переменной придется опять для всех объектов класса делать SetGlobVar(20); Это же неправильно.
Небольшой оффтоп, почему компилятор заставляет включать в каждый срр-файл #include "stdafx.h"?

Daemon писал(а):
PS Форум программирование преобретает большую популярность, это хорошо

Да здесь вообще хорошо! по сравнению с другими форумами обстановка намного приятнее, теплее что-ли. Что радует находятся добрые люди, которые помогают. Надеюсь в скором времени и сам начну помогать нубам)))


 

Junior
Статус: Не в сети
Регистрация: 04.05.2006
Откуда: Чайковский.
Catar это ожидание нажатия клавиши. Работает не зависимо от того как напишешь getche или getch. Проверял.

_________________
Никогда не говори никогда!


 

Member
Статус: Не в сети
Регистрация: 09.01.2006
Откуда: Moscow
Catar, то же самое что getch(), но при этом то что нажали отобразится на экран.


 

Member
Статус: Не в сети
Регистрация: 11.04.2004
Откуда: СПБ
kexman писал(а):
они должны быть одни для всех объектов класса в программе(а их много).

а static для кого придумали?
Добавлено спустя 1 минуту
NullPointer писал(а):
Catar, то же самое что getch(), но при этом то что нажали отобразится на экран.

Thx. Брр, просто таак давно не юзал эти либы...
kexman писал(а):
Или с точки зрения структуры программы, нужно проектировать без них?

Угумс. Втыкать в проектирование.
Добавлено спустя 52 секунды
Да вдогонку., и глобальных функций быть тоже не должно.
Добавлено спустя 3 минуты, 21 секунду
И вообще, неплохо бы эту самую статик переменную объявить как прайват и навешать на нее геттер и сеттер. Ибо public поля - не руль.


 

Member
Статус: Не в сети
Регистрация: 12.12.2003
Откуда: Уфа
Catar
Хм, в данной ситуации я не вижу как реализовать это по-другому. Это будет очень криво, передавать 4 переменные через методы во все объекты, каждый раз при изменении этих переменных. Программирование должно быть удобным.


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
kexman Можно сделать отдельный объект для хранения этих переменных, и всем передавать указатель на него в конструкторе…

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 11.04.2004
Откуда: СПБ
kexman писал(а):
Хм, в данной ситуации я не вижу как реализовать это по-другому.

еще раз.
Код:
class blah {
 static int my_variable;
public:
static void set_my_variable(int a) { my_variable = a;}
static int get_my_variable() { return my_variable;}
};

int main() {
 blah::set_my_variable(10);
 int b = blah::get_my_variable();
}

Добавлено спустя 50 секунд
Anoss писал(а):
Можно сделать отдельный объект для хранения этих переменных, и всем передавать указатель на него в конструкторе…

Ну а чем таки static не нравится?


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Catar Да у него не экземпляров много, а самих классов разных)
Добавлено спустя 1 минуту, 49 секунд
По крайней мере, у меня так отложилось в подсознании :spy:

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 11.04.2004
Откуда: СПБ
Anoss писал(а):
Да у него не экземпляров много, а самих классов разных)

Откуда это следует?
kexman писал(а):
И все-таки как сделать глобальную переменную, чтобы ее могли использовать и методы класса и допустим я мог ее изменять в функции main() моей программы?

Из этого следует мой код.


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Catar писал(а):
Откуда это следует

Не знаю. Вот перечитал все и передумал) Тогда конечно static. Просто kexman слово static проигнорировал, вот меня и понесло)

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 11.04.2004
Откуда: СПБ
Тем более использование разными классами одной глобальной переменной - налицо косость проектирования. Если бы было так, то надо было бы создать отдельный класс который бы занимался инкапсуляцией этой долбаной переменной и внутре у него все статиком было - тк иначе, кто гарантирует, чего клиенты понапихают в эту переменную? если есть сеттер - то там хотя бы можно проверить, а не ботву ли нам пихают и в случае чего эксепшн кинуть....


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Catar писал(а):
инкапсуляцией этой долбаной переменной

Ну я об этом и писал… а сеттер должен быть, чего ж ему не быть?)

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 11.04.2004
Откуда: СПБ
Anoss писал(а):
Ну я об этом и писал…

дык зафига делать лишнюю мороку с указателями на объект в конструкторе, если можно

Код:
class EncapsulatedMyVariable {
   static int my_variable;
   public:
   static void set();
   static int get();
};


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
А дальше-то что? По члену EncapsulatedMyVariable в каждый класс, по экземпляру в каждый объект?
Добавлено спустя 1 минуту, 35 секунд
Похоже, порочность самой идеи вылезает в любом случае :lol:

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 12.12.2003
Откуда: Уфа
) Catar Anoss
Anoss писал(а):
Catar Да у него не экземпляров много, а самих классов разных)

Дело в том, что у меня несколько экземпляров одного класса(впоследствии будет много классов, наследованных от одного). Про static я честно говоря не знаю, что это такое, буду читать, это в каком разделе книги должно быть?


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
kexman писал(а):
это в каком разделе книги должно быть?

«Статические члены класса». Кто ж его знает, какая там у тебя книжка…

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 11.04.2004
Откуда: СПБ
Anoss писал(а):
По члену EncapsulatedMyVariable в каждый класс, по экземпляру в каждый объект?

кого? у него же все статичное...
EncapsulatedMyVariable::set() для установки
EncapsulatedMyVariable::get() для получения...
Тупо вызываем, там где нам нужно, не надо никаких объектов создавать.
kexman писал(а):
Дело в том, что у меня несколько экземпляров одного класса(впоследствии будет много классов, наследованных от одного).

Тогда смотри первый код, приведенный мною.


 

Member
Статус: Не в сети
Регистрация: 12.12.2003
Откуда: Уфа
Почитал книжку(Липпман, Лажойе). Похоже static - действительно то, что мне нужно! Очень круто придумано. Только возникает такой вопрос, если у меня есть несколько классов, наследованных от родительского, у которого есть статик-член, он буде работать в порожденных класса?


 

Member
Статус: Не в сети
Регистрация: 11.04.2004
Откуда: СПБ
kexman писал(а):
Только возникает такой вопрос, если у меня есть несколько классов, наследованных от родительского, у которого есть статик-член, он буде работать в порожденных класса?

да.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 23 из 87<  1 ... 20  21  22  23  24  25  26 ... 87  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan