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

Конструкторы для реинициализации - C++

Восстановить пароль Регистрация
 
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
03.11.2012, 13:08     Конструкторы для реинициализации #1
С большим удивлением обнаружил, что вот такой код оказывается вполне работоспособен.
То бишь конструктор можно вызвать уже и на созданном объекте для его реинициализации

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "stdafx.h"
#include <iostream>
 
 
using namespace std;
 
class AAA
{
public:
    AAA(int x) : a(x)
    {
 
    }
    void show()
    {
        cout << "a = " << a << endl;
    }
private:
    int a;
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    AAA p(3);
    p.show();
    p.AAA::AAA(5);
    p.show();
    
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2012, 13:08     Конструкторы для реинициализации
Посмотрите здесь:

конструкторы C++
C++ конструкторы
C++ конструкторы
C++ Конструкторы и деструкторы. Определить оптимальный подбор банкнот для выдачи задаваемой суммы в рублях для банкомата
Конструкторы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.11.2012, 13:31     Конструкторы для реинициализации #2
Да ладно?
http://liveworkspace.org/code/bd16c2...4aea2b2c40f798
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
03.11.2012, 13:40  [ТС]     Конструкторы для реинициализации #3
Вот чтобы я сдох, но в Visual Studio 2012 все работает и выдает
C++
1
2
a = 3
a = 5
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
03.11.2012, 13:51     Конструкторы для реинициализации #4
Ну, как бы, это половые проблемы особенность Visual Studio, что она не следует стандарту в данном пункте. Так что «вполне работоспособен» заменяйте на «вполне работоспособен в Студии».

Добавлено через 8 минут
Если что... я посмотрел, и что-то не нашёл ни пункта, требующего так делать, ни запрещающего тоже.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.11.2012, 14:07     Конструкторы для реинициализации #5
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Если что... я посмотрел, и что-то не нашёл ни пункта, требующего так делать, ни запрещающего тоже.
Как насчет 12.1.2?
Because constructors do not have names, they are never found during name lookup
На SO есть эта тема
http://stackoverflow.com/questions/1...nstruct-syntax
Там, кстати, тот-же параграф указан
Yandex
Объявления
03.11.2012, 14:07     Конструкторы для реинициализации
Ответ Создать тему
Опции темы

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