Классы
Одним из выходов это сделать переменные глобальными, но использование глобальных переменных нежелательно, поэтому этот выход не подходит.
Сказали, что можно через члены-переменные классов это организовать, но у меня не получается, вот что я хочу:
class TSmall
{
private:
protected:
public:
int h;
void Get();
};
void TSmall::Get()
{
//тут выдает ошибку, так как не знает переменную x
h=x; //как сделать так, что класс TSmall знал о существовании переменной x?
}
class TMain
{
private:
protected:
public:
int x;
int y;
void Go();
TSmall *Small;
};
void TMain::Go()
{
for(x=0;x<10;x++)
{
Small=new TSmall;
Small->Get(); //хочу чтобы процедура Get работала с переменной x
}
}
Или как я делаю это вообще нельзя реализовать?
а в курсе, что ф-ции могут быть как пустыми, так и принимающими параметры? (это намек на определение TSmall::Get)
а в курсе, что ф-ции могут быть как пустыми, так и принимающими параметры? (это намек на определение TSmall::Get)
Я бы лучше намекнул на то, что функции могут еще возвращать параметры, например. Что-то типа return &h.
а если кто изменить значение по ссылке, а надо в объекте на изменение реагировать? нету в сях простого механизма свойств
{
public:
int h;
void Get();
};
...
TSmall *Small;
...
Small=new TSmall;
h находится в паблике, к нему вообще проще Small->h обращаться, а это не отследишь уже никак:rolleyes:. Думаю, бессмысленно говорить о такой слежке при такой реализации класса.
Быдлокод, что тут скажешь.
Не скажи, паблик очень удобен, если тебе не сильно волнует, какие данные там хранятся, а скорость обработки важна. Так ты только обратишься по указателю, иначе тебе придется вызвать функцию... Ну ты понял.;)
Алсо,
[QUOTE=GanBit]
использование глобальных переменных нежелательно
[/QUOTE]
:eek:
Кто тебе сказал такую глупость? Глобальные переменные используются только там, где они нужны. Особенно глобальные константы. Проблемы глобальных переменных начинаются при использовании от 5 и больше индусов, которые называют их только как x и y. Ну и еще несколько интересных минусов. У вшивой программы 100МБ в ОЗУ, например.