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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Насколько нужно выучить C++, перед тем как переходить на C#? http://www.cyberforum.ru/cpp-beginners/thread922839.html
Я изучаю программирование (язык С++) дома, в институте наверно тоже скоро будем его изучать. Я знаю, что C++ очень полезно знать и владение им на хорошем уровне всегда приветствуется. Но меня очень волнует, что сейчас везде стали делать акцент на C# и Java и я боюсь, что сейчас, начав изучать C++, я теряю время, которое мог бы потратить на изучение C#. Например, некоторые мои одногруппники сейчас...
C++ Стартовый код компилятора VS Программа написанная на C++ под отладкой показывает, много кода, который явно не включался в исходный код в отличие от программы написанной на ассемблере. В веб толком ничего не нашел. Рихтер вскользь упомянул про него, но толком ничего не ясно. Что почитать по данной теме? http://www.cyberforum.ru/cpp-beginners/thread922837.html
C++ Класс Car. Наследование
1) У нас есть class Car --> св-ва maxspeed, currentspeed. Методы Getmaxs(), Getcurrs() которые соответственно возвр. maxspeed и currentspeed. Также есть метод Setcurrs()(этот метод нужен для защиты от дурака) + еще есть полностью виртуальный метод virtual void Info()=0; 2) от Car наследуется Lorry (камаз) и у него переопределяется метод void Info(); 3) от Car наследуется Bus (автобус) и...
Авторизация но на сайте javascripts C++
Ув.Форумчане, хотел спросить, вот я хочу создать авторизацию на сайт. Допустим что-бы авторизоваться на сайт vk.com, все давно легко Я через сниффер увидел http://vk.com/login.php?m=1&email=логин&pass=пароль А вот пытаюсь написать программу чтоб авторизоваться тут: http://turboliker.ru/, и у меня не получается, т.к до входа в панель, там иду скрипты, и путь не виден. Так-же просматривая...
C++ непонятно зачем нужный map.value_comp http://www.cyberforum.ru/cpp-beginners/thread922816.html
непонимание здесь в том, что зачем мы пишем std::pair<char,int> highest = {'d',3006} ; если все равно всё сравнение идёт по "char" а, не по int. Для этого есть же key_comp которому при сравнении нужен только char #include <iostream> #include <map> typedef std::map<char,int> chint; int main () { chint mymap; mymap=1001; mymap=2002; mymap=3003; mymap=1101; mymap=2022; mymap=4545; ...
C++ String, конкатенация и "необъявленные" строки Доброго времени суток! Во время написания простого примера (изучаю язык) наткнулся на проблему с конкатенацией строк: #include <iostream> #include <string.h> using namespace std; int main() { string text = "text"; подробнее

Показать сообщение отдельно
kotgav
2 / 2 / 0
Регистрация: 13.07.2013
Сообщений: 62
20.07.2013, 15:26     Как обычную переменную на время сделать константой?
Цитата Сообщение от 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 прекрасно выводится из основного файла (с главной функцией).
Это вопрос закрыт.
 
Текущее время: 02:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru