Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
#1

Как запретить вызов конструктора 2-ой раз - C++

27.01.2013, 17:19. Просмотров 733. Ответов 11
Метки нет (Все метки)

Как можно сделать чтобы конструктор не вызывался 2-раз

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
#include "Model.h"
 
 
 
int main()
{
    Model mod;
    mod.printPlayer();
 
    Model mod1;
    mod1.printPlayer();
    return 0;
}
здесь конструктор вызывается 2-ой раз
C++
1
Model mod1; mod1.printPlayer();
- но мне этого не нужно... Помогите пожалуйста...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2013, 17:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как запретить вызов конструктора 2-ой раз (C++):

вызов конструктора - C++
Здарова! Есть допустим класс: class Str { Str(); Str(Str&amp;); Str(char*); };

вызов конструктора - C++
Почему при повторном вызове конструктора выбивает ошибку ?Вот здесь ObjX(INUSE); no match for call to `(aClass) (int&amp;)' #include...

Вызов конструктора - C++
void main() { std::string stemporary; int itemporary; float ftemporary; float fftemporary; ECM *pECM; for (int i=0;i&lt;4;i++) ...

Вызов конструктора классf! - C++
Всем привет! Вот есть конструктор. SampleTable::SampleTable(const sp&lt;DataSource&gt; &amp;source) : mDataSource(source), ...

Неоднозначный вызов конструктора - C++
class Verylong{ public: Verylong (long x = 0) { enter(x);} Verylong (const Verylong&amp; vrl) : _sign(vrl._sign),...

Вызов конструктора копий - C++
Всех приветствую! Имеется следующий простенький код: #include &lt;iostream&gt; using namespace std; class Object { ...

11
Avazart
Эксперт С++
7572 / 5557 / 326
Регистрация: 10.12.2010
Сообщений: 24,917
Записей в блоге: 17
27.01.2013, 17:23 #2
Конструктор нельзя вызвать дважды по определению...

printPlayer() -метод а не конструктор насколько можно судить по коду.
0
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
27.01.2013, 17:27  [ТС] #3
ну конструктор вызывается в тот момент когда я пишу
C++
1
Model mod1;
0
rangerx
1941 / 1550 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
27.01.2013, 17:28 #4
Singleton ???
0
Avazart
Эксперт С++
7572 / 5557 / 326
Регистрация: 10.12.2010
Сообщений: 24,917
Записей в блоге: 17
27.01.2013, 17:28 #5
Цитата Сообщение от Maratovich Посмотреть сообщение
ну конструктор вызывается в тот момент когда я пишу
Ну и ??
0
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
27.01.2013, 17:31  [ТС] #6
так получается когда я буду создавать новую переменную так опять будут новые данные ??

просто у меня в конструкторе выпадает случайное число и мне не нужно чтобы данные во время выполнения программы оно менялось...
может тогда что-нибудь посаветуете, что бы обойти этот момент ?

Добавлено через 15 секунд
так получается когда я буду создавать новую переменную так опять будут новые данные ??

просто у меня в конструкторе выпадает случайное число и мне не нужно чтобы во время выполнения программы оно менялось...
может тогда что-нибудь посаветуете, что бы обойти этот момент ?
0
kravam
быдлокодер
1705 / 892 / 45
Регистрация: 04.06.2008
Сообщений: 5,524
27.01.2013, 17:32 #7
Maratovich, тебе нужно вызвать метод что ли, не создавая объекта?
0
Avazart
Эксперт С++
7572 / 5557 / 326
Регистрация: 10.12.2010
Сообщений: 24,917
Записей в блоге: 17
27.01.2013, 17:33 #8
Что мешает необходимые данные объявить как static ?
0
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
27.01.2013, 17:37  [ТС] #9
тогда мне все как static Объявлять ??
0
Avazart
Эксперт С++
7572 / 5557 / 326
Регистрация: 10.12.2010
Сообщений: 24,917
Записей в блоге: 17
27.01.2013, 17:39 #10
Все зависит от того что в конечном счете рассчитываешь получить, возможно там вообще классы не нужны...
1
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
27.01.2013, 17:50  [ТС] #11
а видит ли класс который унаследовал другой класс статические поля - имеет ли он к ним доступ ?
0
kravam
быдлокодер
1705 / 892 / 45
Регистрация: 04.06.2008
Сообщений: 5,524
27.01.2013, 17:54 #12
Всё за нас придумали уже. Одна переменная на все объекты это static

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
 
class obj{
    public:
    obj() {
    }
    static int prev;
};
 
int obj::prev= 23;
 
int main(){
    obj a;
    printf ("%d\n", obj::prev);
    getchar ();
    return 0;
}
тут есть некоторое неудобство, на мой взгляд- мы вынуждены инициализировать переменную вне класса. Да ну и пусть так и будет, чё теперь поделать-то. Все другие способы (инициализировать переменную в методе или лепить глобальную переменную) так всё равно надо лепить ГЛОБАЛЬНУЮ переменную, как ни крути. Так пусть уж она будет static- то ест как бы "принадлежать" только этому классу.

Добавлено через 40 секунд
Цитата Сообщение от Maratovich Посмотреть сообщение
а видит ли класс который унаследовал другой класс статические поля - имеет ли он к ним доступ ?
а это, если сомневаешься, берёшь и проверяешь.
1
27.01.2013, 17:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2013, 17:54
Привет! Вот еще темы с ответами:

realloc и вызов конструктора - C++
здраствуйте! мне препод сказал, что можно выделить память оператором new, а потом довыделить её с помощью realloc и каким-то образом...

Вызов копирующего конструктора - C++
Помогите привести примеры для всех случаев.. Копирующий конструктор вызывается в следующих случаях: 1)если объект типа type...

Вызов конструктора класса - C++
есть класс Set, и в нем есть конструктор, как с этого конструктора мне массивы перенести в метод другого класса так что бы над ними можно...

Неправильный вызов конструктора - C++
Доброго времени суток. Возникла такая проблема. Есть такой конструктор House(string s){ int n; string a; for (int i=1;...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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