Member
Статус: Не в сети Регистрация: 12.12.2003 Откуда: Уфа
Daemon
Daemon писал(а):
А вообще - это порочная практика, глобальные переменные.
То есть предпочтительно пользоваться вариантом, который предложил mein?Или с точки зрения структуры программы, нужно проектировать без них? Но в моем конкретном случае без этих глобальных переменных не обойтись-они должны быть одни для всех объектов класса в программе(а их много). Но при варианте mein при изменении какой-либо переменной придется опять для всех объектов класса делать SetGlobVar(20); Это же неправильно. Небольшой оффтоп, почему компилятор заставляет включать в каждый срр-файл #include "stdafx.h"?
Daemon писал(а):
PS Форум программирование преобретает большую популярность, это хорошо
Да здесь вообще хорошо! по сравнению с другими форумами обстановка намного приятнее, теплее что-ли. Что радует находятся добрые люди, которые помогают. Надеюсь в скором времени и сам начну помогать нубам)))
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 Откуда: Москва-Лубянка
Catar Да у него не экземпляров много, а самих классов разных) Добавлено спустя 1 минуту, 49 секунд По крайней мере, у меня так отложилось в подсознании
Member
Статус: Не в сети Регистрация: 11.04.2004 Откуда: СПБ
Anoss писал(а):
Да у него не экземпляров много, а самих классов разных)
Откуда это следует?
kexman писал(а):
И все-таки как сделать глобальную переменную, чтобы ее могли использовать и методы класса и допустим я мог ее изменять в функции main() моей программы?
Member
Статус: Не в сети Регистрация: 11.04.2004 Откуда: СПБ
Тем более использование разными классами одной глобальной переменной - налицо косость проектирования. Если бы было так, то надо было бы создать отдельный класс который бы занимался инкапсуляцией этой долбаной переменной и внутре у него все статиком было - тк иначе, кто гарантирует, чего клиенты понапихают в эту переменную? если есть сеттер - то там хотя бы можно проверить, а не ботву ли нам пихают и в случае чего эксепшн кинуть....
Member
Статус: Не в сети Регистрация: 01.04.2005 Откуда: Москва-Лубянка
А дальше-то что? По члену EncapsulatedMyVariable в каждый класс, по экземпляру в каждый объект? Добавлено спустя 1 минуту, 35 секунд Похоже, порочность самой идеи вылезает в любом случае
Member
Статус: Не в сети Регистрация: 12.12.2003 Откуда: Уфа
) CatarAnoss
Anoss писал(а):
Catar Да у него не экземпляров много, а самих классов разных)
Дело в том, что у меня несколько экземпляров одного класса(впоследствии будет много классов, наследованных от одного). Про static я честно говоря не знаю, что это такое, буду читать, это в каком разделе книги должно быть?
Member
Статус: Не в сети Регистрация: 11.04.2004 Откуда: СПБ
Anoss писал(а):
По члену EncapsulatedMyVariable в каждый класс, по экземпляру в каждый объект?
кого? у него же все статичное... EncapsulatedMyVariable::set() для установки EncapsulatedMyVariable::get() для получения... Тупо вызываем, там где нам нужно, не надо никаких объектов создавать.
kexman писал(а):
Дело в том, что у меня несколько экземпляров одного класса(впоследствии будет много классов, наследованных от одного).
Member
Статус: Не в сети Регистрация: 12.12.2003 Откуда: Уфа
Почитал книжку(Липпман, Лажойе). Похоже static - действительно то, что мне нужно! Очень круто придумано. Только возникает такой вопрос, если у меня есть несколько классов, наследованных от родительского, у которого есть статик-член, он буде работать в порожденных класса?
Member
Статус: Не в сети Регистрация: 11.04.2004 Откуда: СПБ
kexman писал(а):
Только возникает такой вопрос, если у меня есть несколько классов, наследованных от родительского, у которого есть статик-член, он буде работать в порожденных класса?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения