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

Как реализовать функцию-член, которую можно вызвать только один единственный раз? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подробно объяснить, что происходит в каждой строчке кода http://www.cyberforum.ru/cpp-beginners/thread1812844.html
#include <iostream> #include <fstream> #include <string> #include <locale> using namespace std; int main() { char temp; int choise, ascii, sizee; string line, number, letter,...
C++ Сгенерировать случайное число в указанном диапазоне, кратное заданному числу Срандомить число от 0 до 100000, кратное 5! Какой командой это можно реализовать? http://www.cyberforum.ru/cpp-beginners/thread1812833.html
C++ Переставить в заданном слове буквы между i-ой и j-ой в обратном порядке
в заданном слове переместить в обратном порядке буквы мужду i и j буквами. например. консоль. 3 и 6 буква. коносль. напишите при помощи cin, cout. вот начало, а дальше без понятия как делать...
Тонкости терминологии: что такое оператор, операция, инструкция и кто из них operator, а кто statement? C++
Помогите понять принцип работы перегрузки операторов. лучше говорить операция, так как оператор в англоязычной литературе, это нечто иное...
C++ Однонаправленный список: как ввести значение в head и последующие узлы списка? http://www.cyberforum.ru/cpp-beginners/thread1812827.html
В head не хранится значение, не могу добавить информацию в первый элемент, из за чего список является пустым. Как ввести значение в head и последующие узлы списка? Не могу определить ошибку. ...
C++ Как реализовать работу с очень большими числами? Добрый день всем! Очень необходимы светлые мозги, ибо не могу понять в чем проблема. Есть работающая программа: #include <iostream> #include <conio.h> #include <stdio.h> #define N 100... подробнее

Показать сообщение отдельно
DrOffset
7141 / 4282 / 964
Регистрация: 30.01.2014
Сообщений: 7,084
24.09.2016, 17:45
maks242,
такое решение тебя устроит?
Кликните здесь для просмотра всего текста
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
class Base
{
public:
    
private:
    static void doSomething()
    {
        std::cout << "doSomething\n";
    }
    static void doAnother()
    {
        std::cout << "doAnother\n";
    }
    
    static struct StaticInitializer
    {
        StaticInitializer()
        {
            doSomething();
            doAnother();
        }
    } init;
};
 
// Это внутри какого-то cpp:
Base::StaticInitializer Base::init;
Онлайн демо: http://rextester.com/PRBYB53466


Добавлено через 6 минут
Или такое:
Кликните здесь для просмотра всего текста
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
class Base
{
public:
    Base()
    {
        static StaticInitializer init;
    }
        
private:
    static void doSomething()
    {
        std::cout << "doSomething\n";
    }
    static void doAnother()
    {
        std::cout << "doAnother\n";
    }
    struct StaticInitializer
    {
        StaticInitializer()
        {
            doSomething();
            doAnother();
        }
    };
};
 
class Derived : public Base
{
};
http://rextester.com/NURKX92736

В этом случае две функции вызовутся при самом первом вызове конструктора Base, и больше ни разу.
5
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru