Форум программистов, компьютерный форум CyberForum.ru

Как повторно проинициализировать переменную конструктором? - C++

Восстановить пароль Регистрация
 
dimkaok
 Аватар для dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
19.04.2013, 16:22     Как повторно проинициализировать переменную конструктором? #1
Создал в классе переменную и проинициализировал ее в конструкторе.

C++
1
2
3
4
5
6
7
8
class A {
 
     int var;
 
  public:
 
     A() : var(0)
};
Потом изменил значение переменной.

C++
1
var = 1;
Можно-ли как-то для этой переменной снова вызвать конструктор, чтобы присвоить ей начальное значение?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 16:22     Как повторно проинициализировать переменную конструктором?
Посмотрите здесь:

C++ Как создать объект с конструктором в интерфейсе другого класса?
Как объявить глобальную ссылку на клас с конструктором, принимающим один параметр C++
класс с конструктором как он тут работает? C++
Как скопировать объект с удаленным копирующим конструктором? C++
C++ Как проинициализировать весь массив объектов?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
19.04.2013, 16:29     Как повторно проинициализировать переменную конструктором? #2
Неа. Но можно сделать метод, устанавливающий начальное состояние объекта и вызывать его как в конструкторе, так и в методе.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A {
 public:
  A() : {
    initializeVariables();
  }
  void reset() {
    initializeVariables();
  }
 private:
  void initializeVariables() {
    size = 0;
  }
  int size;
};
dimkaok
 Аватар для dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
19.04.2013, 16:40  [ТС]     Как повторно проинициализировать переменную конструктором? #3
Цитата Сообщение от lemegeton Посмотреть сообщение
Неа. Но можно сделать метод, устанавливающий начальное состояние объекта и вызывать его как в конструкторе, так и в методе.
А жаль Ладно, будем так делать
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
19.04.2013, 17:17     Как повторно проинициализировать переменную конструктором? #4
Можно сделать вид вызова конструктора. Если интересно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
 
struct A {
    int a;
    A( int a ) : a(a) {}
    void operator ()( int _a ) { a = _a; }
    int & operator ()() { return a; }
};
 
int main()
{
    A a( 10 );
    a( 11 ); // присваиваем новое значение
    cout << a() << endl;
    return 0;
}
Yandex
Объявления
19.04.2013, 17:17     Как повторно проинициализировать переменную конструктором?
Ответ Создать тему
Опции темы

Текущее время: 19:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru