Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

хелп: видимость переменных

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Rion
Гость





СообщениеДобавлено: Сб Дек 25 2004 21:30    Заголовок сообщения: хелп: видимость переменных Ответить с цитатой

помогите плизз, вопрос в следующем, вот пример...
Код:

class cl1
{
  cl1 ();
  ~cl1 ();
  int getvar();
};

class cl2
{
  cl2();
  ~cl2();
  int var;
  cl1 hren;
};

int cl1::getvar()
{
  // ЧЕГО ЗДЕСЬ НАПИСАТЬ ЧТОБ ПОЛУЧИТЬ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ var ???
}

main()
{
  cl2 test;
}


можно канешно передовать в getvar this объекта cl2. но в моем случае не канает, т.к. не хочу передовать ф-ии (именно в getvar) никакие параметры[/code]
Вернуться к началу
Гость






СообщениеДобавлено: Пн Дек 27 2004 07:55    Заголовок сообщения: Ответить с цитатой

Полный бред вообще, почитай книжки по ООП и C++ для начинающих.
Вернуться к началу
droopy



Зарегистрирован: 28.07.2004
Сообщения: 168

СообщениеДобавлено: Пн Дек 27 2004 08:04    Заголовок сообщения: Ответить с цитатой

так лучше не делать, надо пересмотреть организацию
а вообще:
class cl1
{
cl1 ();
~cl1 ();
int getvar();
};

class cl2
{
cl2();
~cl2();
static int var;
cl1 hren;
};

int var;

int cl1::getvar()
{
return cl2::var;
// ЧЕГО ЗДЕСЬ НАПИСАТЬ ЧТОБ ПОЛУЧИТЬ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ var ???
}

main()
{
cl2 test;
}
или так:
class cl1
{
cl1 ();
~cl1 ();
int getvar();
};

class cl2
{
cl2();
~cl2();
int var;
cl1 hren;
};

int cl1::getvar()
{
return test.var;
// ЧЕГО ЗДЕСЬ НАПИСАТЬ ЧТОБ ПОЛУЧИТЬ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ var ???
}
cl2 test;
main()
{

}
первый вариант менее уродлив но имеет свои особенности.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
DmitryShm



Зарегистрирован: 17.11.2003
Сообщения: 211
Откуда: Казань

СообщениеДобавлено: Пн Дек 27 2004 09:34    Заголовок сообщения: совет Ответить с цитатой

Просьба отнестись серьезно : книжки по ООП для начинающих нужно читать, причем разбирая все в задачах. Здесь проблема заключается в неправильной трактовки сущности. Такие ситуации не должны возникать, но если уж и надо получать такую переменную, то cl2 должен предоставить дружбу для cl1 (объяви friend class cl1 в определении класса cl2), причем переменная должна быть статической, чтобы был смысл в ее передаче. Если такая ситуация возникла при разработке своей библиотеки, то решение может зависеть от того, на какой стадии разработка пребывает. Если только начинается, то просьбы пересмотреть логику. Если это возникло при использовании какой-то библиотеки, то, скорее всего, неправильное использование, или просто эта библиотека полное барахло (надо внимательно ее изучить, чтобы правильно ее использовать, и программировать в тех идиомах, которые подходят для проекта, и которые предполагает библиотека). В конце концов, это же С++, а не какой нибудь С. Smile
_________________
love IT
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...