Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Насколько нужно выучить C++, перед тем как переходить на C#? https://www.cyberforum.ru/ cpp-beginners/ thread922839.html
Я изучаю программирование (язык С++) дома, в институте наверно тоже скоро будем его изучать. Я знаю, что C++ очень полезно знать и владение им на хорошем уровне всегда приветствуется. Но меня очень...
Стартовый код компилятора VS C++
Программа написанная на C++ под отладкой показывает, много кода, который явно не включался в исходный код в отличие от программы написанной на ассемблере. В веб толком ничего не нашел. Рихтер...
C++ Класс Car. Наследование
1) У нас есть class Car --> св-ва maxspeed, currentspeed. Методы Getmaxs(), Getcurrs() которые соответственно возвр. maxspeed и currentspeed. Также есть метод Setcurrs()(этот метод нужен для...
C++ Авторизация но на сайте javascripts Ув.Форумчане, хотел спросить, вот я хочу создать авторизацию на сайт. Допустим что-бы авторизоваться на сайт vk.com, все давно легко Я через сниффер увидел... https://www.cyberforum.ru/ cpp-beginners/ thread922819.html
C++ непонятно зачем нужный map.value_comp https://www.cyberforum.ru/ cpp-beginners/ thread922816.html
непонимание здесь в том, что зачем мы пишем std::pair<char,int> highest = {'d',3006} ; если все равно всё сравнение идёт по "char" а, не по int. Для этого есть же key_comp которому при сравнении...
String, конкатенация и "необъявленные" строки C++
Доброго времени суток! Во время написания простого примера (изучаю язык) наткнулся на проблему с конкатенацией строк: #include <iostream> #include <string.h> using namespace std; int main()...
Iseq C++
Здорова! Есть задачка: "Определите версию iseq() (параграф 18.3.1), для встроенных массивов istream и пар итераторов. Задайте подходящий набор перегруженных не модифицирующих последовательность...
C++ Не записываются числа Написал программу, которая с помощью цикла записывает в файл числа от нуля до 423. Но почему то компилятор выдает ошибку если я записываю цифры. Если же это слова, то все норм: #include "StdAfx.h"... https://www.cyberforum.ru/ cpp-beginners/ thread922786.html
C++ Проблемка с exit https://www.cyberforum.ru/ cpp-beginners/ thread922773.html
Пример из книги. #include <iostream> #include <iomanip> // для setw() #include <process.h> // для exit() using namespace std; int main() { unsigned int n, j; cin >>...
C++ Запись в файл Не понимаю в чем дело. Написал программу которая записывает значения в файл. На деле она записывает данные в файл, если он находиться в папке с программой. Если же я указываю файл в другой папке,... https://www.cyberforum.ru/ cpp-beginners/ thread922771.html
3 / 3 / 1
Регистрация: 13.07.2013
Сообщений: 71
20.07.2013, 15:26 0

Как обычную переменную на время сделать константой?

20.07.2013, 15:26. Просмотров 7899. Ответов 66
Метки (Все метки)

Ответ

Цитата Сообщение от Nixy Посмотреть сообщение
Поленился прочитать тему целиком, может кому поможет, если вариант с классами, то если переменная одна, можно сделать к ней флажок, типа bool например, и гетер с сетером, инициализировать при первом заходе в сетер, поднять флажок и больше не изменится.
Спасибо, тоже пригодится!

Добавлено через 18 часов 22 минуты
============================================================ =============
Почему-то новое мое сообщение добавляется к прежнему, а не создается как новое.
Поэтому получается очень большое сообщение.
============================================================ =============

Сделал пример "замораживания" переменной с классом. Как мне и подсказывали, работает и без глобальной переменной. Понравилось.
Итак, создал заголовочный файл для описания класса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once     // Исключаем повторное подключение заголовочных файлов
 
#include <iostream>
using namespace std;
 
class Measurer         // класс Измеритель
{
public:
    int setdata(int d);   // метод (функция) класса. Аргумент d - входная переменная с текущим изменяемым значением   
 
private:
    int a;             // глобальная вспомогательная переменная
    int b;             // переменная с неизменяемым начальным значением переменной d
    int c;             // текущая разность
 
protected:
 
};
Создал файл исходных кодов с логикой класса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include "Sht_Classes.h"
 
 
int Measurer::setdata(int d)         // метод класса 
{
    if (a < 0)
    {
        a = d;    // замораживаем начальное значение в глобальной переменной
    }
    b = a;        // присваиваем замороженной значение временной константе
    c = d - b;    // текущая разность
    cout << "Временная константа a= " << a << " Текущая разность c= " << c << endl;
    return c;
}
В основном файле исходных кодов с главной функцией создал объект моего класса:
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
#include "stdafx.h"
#include <iostream>
#include "Sht_Classes.h"
using namespace std;
 
 
// Главная (вызывающая) функция
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
 
    Measurer PrMeter;       // определяем объект PrMeter класса Measurer
    int i;                  // входная переменная с текущим значением
 
    // устанавливаем значения объекта с помощью метода класса Measurer   
    for(i=1; i<5; ++i)
    {
        PrMeter.setdata(i);
    
    // выводим на экран текущие значения переменной i    
       cout << "Входная переменная i= " << i << "\n" << endl;
       system ("pause");
    }
 
    return 0;
}
Остались вопросы, подскажите пожалуйста.
1. Среда требует возвращаемой переменной. Я поставил с - текущую разность. Но в примерах в книжках есть классы и без return и разобраться в том, когда нужен return, а когда нет я не смог.
2. Не понял также, как вывести в экземпляре класса (в моем объекте) переменную из класса? Конкретно, захотел вывести вместе с "i" также и текущую разность "c" вот в этой строчке экземпляра класса:
cout << "Входная переменная i= " << i << "\n" << endl;

Добавлено через 2 часа 12 минут
Дополнение по вопросам.
По пункту 2 разобрался - переменная с была защищена. Перенес ее в public и ее значение PrMeter.c прекрасно выводится из основного файла (с главной функцией).
Это вопрос закрыт.

Вернуться к обсуждению:
Как обычную переменную на время сделать константой?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2013, 15:26
Готовые ответы и решения:

Как обычную переменную сделать константой
Как можно константой сделать обычную переменную, а то хочу создать матрицу nxn а мне VS требует что...

Как из переменной окружения сделать обычную переменную?
В общем, такая ситуация: нужно переменную окружения PATH сделать обычной переменной. Каким образом...

Цикл в delphi. Сделать переменную константой в цикле
Вообщем у меня цикл - там огромные формулы... и в итоге с каждым началом нового действия цикла...

Как сделать, чтобы "*" принимали как обычную переменную?
как сделать чтобы * принимали как обычную переменную??

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