Я могу объявить членскую переменную как константу в классе C++? если да, как?

Хеширование является методом создания полууникальных ключей на основе больших частей данных. В данном хеше у Вас в конечном счете будут "коллизии" (например, две различных части данных, вычисляющих к тому же значению хэш-функции) и когда Вы сделаете, Вы обычно создаете больший размер ключа хеша.

путаница обычно включает попытку удалить полезные подсказки (т.е. значимая переменная/имена функций), удаление пробела для создания вещей трудно для чтения, и обычно выполнение вещей замысловатыми способами сделать следующее, что продолжается трудный. Это обеспечивает, никакой серьезный уровень безопасности как "истинное" шифрование не был бы.

Шифрование может следовать нескольким моделям, одна из которых является "секретным" методом, названным шифрованием с закрытым ключом, где у обеих сторон есть секретный ключ. Шифрование с открытым ключом использует общий односторонний ключ для шифрования и частный ключ получателя для дешифрования. С открытым ключом только у получателя должен быть секрет.

8
задан avakar 11 July 2009 в 19:52
поделиться

3 ответа

Вы можете - поместите const перед именем типа.

class C
{
     const int x;

public:
      C() : x (5) { }
};
18
ответ дан 5 December 2019 в 05:45
поделиться

Вы декларируете это, как если бы он не был членом. Обратите внимание, что объявление переменной как const существенно повлияет на способ использования класса. Вам обязательно понадобится конструктор для его инициализации:

class A {
    public:
        A( int x ) : cvar( x ) {}
    private:
        const int cvar;
};
8
ответ дан 5 December 2019 в 05:45
поделиться

Конечно, самый простой способ такой, если значение будет то же самое для всех экземпляров вашего класса:

class X
{
public:
    static const int i = 1;
};

Или, если вы не хотите, чтобы он был статическим:

class X
{
public:
    const int i;
    X(int the_i) : i(the_i)
    {     
    }
};
3
ответ дан 5 December 2019 в 05:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: