Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание и уничтожение переменных 
:(
    Опции темы
azer88
Дата 9.10.2011, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 18.11.2007

Репутация: нет
Всего: нет



мне нужно знать когда создается переменные a и  x  и когда они уничтожаются
Код

#include <iostream>
using namespace std;
int f(int);
int main()
{
    int a;
    a=100;
    f(a);
    system("pause");
    return 0;
}
int f(int x)
{
    return x;
}


создается a, потом x, потом x уничтожаются, а в конце уничтожаются a.
правильно ли мой вариант?
PM MAIL   Вверх
newbee
Дата 9.10.2011, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 3
Всего: 19



а создается перед входом в мэйн, после выхода - уничтожается. х создается перед (каждым!) входом в ф, после выхода уничтожается.


--------------------
You're face to face
With man who sold the world
PM   Вверх
ShadowC
Дата 9.10.2011, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 23.6.2011

Репутация: нет
Всего: нет



в С++ алгоритм выполнения функций построен из стеков,каждый стек это функция,правило простое - последним вошел первым вышел,поэтому да ты правильно решил что а живет до тех пор пока выполняется функция main

Код

#include <iostream>
using namespace std;
int f(int);
int z(int);
int main()
{
    int a;
    a=100;
    f(a);
    system("pause");
    return 0;
}
int f(int x)
{
z(x);
return x;
}
int z(int y)
{
 return y;
}


y - последним создается и первым уничтожается,пока жива z жив x и a,но если пометить переменную как static она не будет уничтожаться а будет хранится все время выполнения программы,но будет известна только в теле своей функции или блока в зависимости от того где она обьявлена.

Это сообщение отредактировал(а) ShadowC - 9.10.2011, 21:25
PM MAIL   Вверх
borisbn
Дата 10.10.2011, 11:16 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Код

#include <iostream>
using namespace std;
class LifeTime
{
public:
    LifeTime() {
        cout << "LifeTime ctor " << this << endl;
    }
    ~LifeTime() {
        cout << "LifeTime dtor " << this << endl;
    }
    LifeTime( const LifeTime & other ) {
        cout << "LifeTime copy ctor " << this << " other = " << &other << endl;
    }
    LifeTime & operator=( const LifeTime & other ) {
        cout << "LifeTime operator= " << this << " other = " << &other << endl;
        return *this; 
    }
};

LifeTime f(LifeTime);

int main()
{
    LifeTime a;
    f(a);
//    system("pause");
    return 0;
}
LifeTime f(LifeTime x)
{
    return x;
}

http://liveworkspace.org/code/3145f8cdfc60...2b4b13e0510d03f

Цитата
LifeTime ctor 0xbfa271ad
LifeTime copy ctor 0xbfa271af other = 0xbfa271ad
LifeTime copy ctor 0xbfa271ae other = 0xbfa271af
LifeTime dtor 0xbfa271ae
LifeTime dtor 0xbfa271af
LifeTime dtor 0xbfa271ad


azer88, возьми этот LifeTime. Пригодится при изучении.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ShadowC
Дата 10.10.2011, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 23.6.2011

Репутация: нет
Всего: нет



помоему адреса ты тут рановато вспомнил,он еще не изучает указатели
PM MAIL   Вверх
newbee
Дата 10.10.2011, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 3
Всего: 19



ShadowC, а отличать переменные ты как будешь? smile

Да, можно внутрь объекта передавать идентифицирующие строки, при копировании добавлять префикс  "copy of", но... зачем, если есть указатели?))


--------------------
You're face to face
With man who sold the world
PM   Вверх
ShadowC
Дата 10.10.2011, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 23.6.2011

Репутация: нет
Всего: нет



Цитата(newbee @ 10.10.2011,  13:11)
ShadowC, а отличать переменные ты как будешь? smile

Да, можно внутрь объекта передавать идентифицирующие строки, при копировании добавлять префикс  "copy of", но... зачем, если есть указатели?))

да,но в неумелых раках указатели оружие массового поражения  smile  smile  smile 
PM MAIL   Вверх
mes
Дата 10.10.2011, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(ShadowC @  10.10.2011,  13:26 Найти цитируемый пост)
да,но в неумелых раках указатели оружие массового поражения

поэтому использовать адрес как идентификатор объекта ни в коем случае нельзя ?!
 smile

Добавлено через 1 минуту и 1 секунду
Цитата(ShadowC @  10.10.2011,  12:05 Найти цитируемый пост)
,он еще не изучает указатели 

а где в примере используются указатели ?!  smile 




--------------------
PM MAIL WWW   Вверх
newbee
Дата 10.10.2011, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 3
Всего: 19



Цитата(ShadowC @  10.10.2011,  15:26 Найти цитируемый пост)
да,но в неумелых раках указатели оружие массового поражения
Он аккуратно, read-only ;)



--------------------
You're face to face
With man who sold the world
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0743 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.