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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
#1

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

19.04.2013, 16:22. Просмотров 441. Ответов 3
Метки нет (Все метки)

Создал в классе переменную и проинициализировал ее в конструкторе.

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++
К примеру у меня есть переменная p типа POINT. Такую запись он считает нелегальной: private: POINT p; public: MyClass()...

Как правильно проинициализировать массив вручную? - C++
Здрасти. как правильно проинициализировать массив в ручную? а то у меня ошибка main.cpp|60|error: expected primary-expression before '{'...

Как проинициализировать весь массив объектов? - C++
// lab7.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <string.h> #include <stdlib.h> ...

Как проинициализировать static поле класса? - C++
Добрый вечер. Как проинициализировать в конструкторе b() подобную переменную? В данном примере "слишком много значений инициализатора". ...

Как правильнее проинициализировать char's, чтобы не было мусора? - C++
struct ElementOfTree { char value; ElementOfTree *parent; ElementOfTree *left; ElementOfTree *right; }; struct Tree ...

класс с конструктором как он тут работает? - C++
Здравствуйте. Не могу понять как работает программа, помогите разобраться, пожалуйста. # include<iostream> using namespace std; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
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
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
19.04.2013, 16:40  [ТС]     Как повторно проинициализировать переменную конструктором? #3
Цитата Сообщение от lemegeton Посмотреть сообщение
Неа. Но можно сделать метод, устанавливающий начальное состояние объекта и вызывать его как в конструкторе, так и в методе.
А жаль Ладно, будем так делать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2013, 17:17     Как повторно проинициализировать переменную конструктором?
Еще ссылки по теме:

Как скопировать объект с удаленным копирующим конструктором? - C++
Здравствуйте. Я использую SFML и делаю биндинги к Lua на основе luabind. Суть такова: в скрипте lua делается инстанс класса sf::Window. Над...

Как повторно открыть файл ifstream - C++
Есть функция int readFile(char* outAdres){ int j(0); fstream inFile; for(QVector<string>::iterator it = files.begin()...

Как создать объект с конструктором в интерфейсе другого класса? - C++
struct WorkerInfo { WorkerInfo(int iPay, int iDebt) : pay (iPay), iDebt(debt) {} ~WorkerInfo() {} int pay; // зарплата ...

Как объявить глобальную ссылку на клас с конструктором, принимающим один параметр - C++
Столкнулся с проблемой. Пытаюсь в классе №1 создать переменную класса №2, а уже потом в конструкторе класса №1 проинициализировать его, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 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     Как повторно проинициализировать переменную конструктором?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru