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

Интересное поведение нестатической функции класса, возвращающей свою статическую переменную - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ выводит 0 http://www.cyberforum.ru/cpp-beginners/thread206717.html
#include <iostream.h> #include <stdio.h> int main () { int a; cout << "сколько спичек?"; cin >> a; int b; cout << "сколько минут горит 1 спичка";
C++ Решение системы уравнений методом Гауса Вот, ради интереса попробовал написать программу (С++). Сейчас она работает, но выполняет лишь первый шаг. Нужно чтобы программа выполняла действия до конца. Идеальным было бы если она еще при этом... http://www.cyberforum.ru/cpp-beginners/thread206713.html
Решение систем уравнений C++
Решить систему алгебраических уравнений методом Жордана-Гаусса: 3x1+1.5x2-x3+2.4x4=6 -0.5x1+x2-3.1x3-4x4=-12 2x1-0.8x2-x4=1 x1-1.3x2+3.9x3-3.7x4=3.1
Подсчет нулевых элементов в заданном одномерном массиве C++
Напишите фрагменты программ для решения следующих задач: 1) подсчет нулевых элементов в заданном одномерном массиве; 2) вычисление суммы положительных элементов в заданном одномерном массиве; 3)...
C++ Матрица http://www.cyberforum.ru/cpp-beginners/thread206689.html
помогите пожалуйста, я ничего не шарю в С+, а у меня сейчас контрольная работа. Напишите код программы. Вот задание вводится произвольная квадратная матрица построчно. Вводятся: номер строки и...
C++ Как считать параметр коммандной строки Я понимаю, что его можно считать из заголовка экзешника, но существует ли более простой способ, а то не охото байтики перебирать. p.s. имеется в виду параметр комм. строки при запуске файла. подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
09.12.2010, 16:03  [ТС]
Если это свойство справедливо, то можно им пользоваться для создания вектора, элементы которого знают свой индекс:

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
31
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <vector>
//////////////////////////////////////////////////////////////////////////////////////
class A
{
    int i_;    
public:
    A() : i_()
    {}
    //------------------------------------------------------------------------------
    A(const A&  a)
    {
        static int  i = 0;
        i_ = i++;
    }
    //------------------------------------------------------------------------------
    operator int()
    {
        return  i_;
    }    
};
//////////////////////////////////////////////////////////////////////////////////////
typedef std::vector<A>  T_A_vect;
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    T_A_vect  v(10);
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, "\n"));
}
Также можно это использовать для создания статических переменных класса, которые при обычном объявлении требуется еще определять где-то вне класса.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru