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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.83
SAMatyunin
3 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 16
#1

static const - C++

21.06.2012, 11:07. Просмотров 4512. Ответов 2
Метки нет (Все метки)

объясните, пожалуйста, вот такую странную конструкцию (накопал в старой проге):

после #include идет следующее:

C++
1
static const char *user = NULL;
1. для чего вообще static const?
2. почему константа *user - сделана указателем?
3. почему присваивается NULL

сама константа смотрю используется здесь:

C++
1
2
3
4
5
6
7
8
static void no_auth_data_fn(const char * pServer, const char * pShare, char * pWorkgroup,
    int maxLenWorkgroup, char * pUsername, int maxLenUsername, char * pPassword,
    int maxLenPassword)
           {
    if(user && user[0] != 0) strncpy(pUsername, user, maxLenUsername - 1);
    if(pass && pass[0] != 0) strncpy(pPassword, pass, maxLenPassword - 1);
        return;
           }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2012, 11:07     static const
Посмотрите здесь:

static const? - C++
если мне нужна константа в классе, как ее лучше объявить со static или без? разница будет только в том, что со статиком мне можно будет...

static и const - C++
static void A(); Что дает этот статик? Что он вообще дает? int A() const; Что дает конст в данном случае? static int...

#define PI or static const float PI - C++
Что лучьше обьясните? #define PI 3,14159265 или static const float PI=3,14159265;

const static vector<type> - C++
Мне нужно создать внутри класса вектор цветов предлагаемых в конструкторе как дефолтные... лучше static, лучше const... главное - чтобы...

Что такое static const и для чего он нужен? - C++
Что такое static const ? И для чего он нужен ?

Инициализация в объявлении константных статических (const static) членов-данных класса. - C++
Привет. Подскажите пожалуйста почему нельзя создавать в классе const static float, а const static int можно? class A{ const...

Разница между объявлениями const Person p1 и Person const p1 - C++
Всем привет. Собственно весь вопрос уместился в заголовок: в чем разница между объявлениями const Person p1 и Person const p1, если...

Int* const или const int*? - C++
class A { public: A() : x(777) {} int* const GetX() { return &amp;x; }

Static - C++
zagolovok.hpp static int a; основной модуль #include &lt;iostream&gt; #include &quot;zagolovok.hpp&quot; int main

Static class c++ - C++
Можно ли сделать класс чисто статическим? То есть не прописывать отдельно для каждой переменой, функции static, а одним разом всех ? ...

Static Library - C++
Привет всем! Нужно проанализировать (понять, что она делает) статичную библиотеку, собранную под Linux (.a), используя Windows. Как это...

Опять static - C++
Есть два файла. ////////////////////////////////////// //main.cpp class SomeClass { public: SomeClass(REC*...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soft.creator
104 / 104 / 4
Регистрация: 17.10.2010
Сообщений: 283
21.06.2012, 13:08     static const #2
static - видна только в этом c/cpp-файле
const char* - указатель на неизменяемую строку
NULL - изначально никуда не указывает

По всей видимости, где-то в другом месте программы делается так:
C++
1
user = "username";
и потом уже вызывается no_auth_data_fn
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
21.06.2012, 13:25     static const #3
1) static - это спецификатор класса памяти, который определяет как должна храниться переменная.
Переменные типа static - это переменные так называемого долговременного хранения, то есть они хранят свои значения в пределах своей функции или файла.

const - ключевое слово делает переменную константой.

2) из представленного кода не до конца понятно.

3) Когда присваивается NULL это значение является признаком того, что указатель указывает на адрес, которой точно не может содержать полезной информации.
Обычно применяется в списках, то есть указывает на начало списка.
Ответ Создать тему
Опции темы

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