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

изменение ptivat static - C++

Восстановить пароль Регистрация
 
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
16.10.2013, 20:19     изменение ptivat static #1
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
32
#include <iostream>
using namespace std;
 
#include <string>
using std::string;
 
  class ext
  {
  public:
    ext( )
    {
      stat=1999;
    }
 
    static int getStat()
    {
      return stat;
    }
 
  private:
    static int stat;
  };
 
  
int main()
{
  ext user;
 
  //статические методы
  cout<<user.getStat()<<endl;
  return 0;
}
не могу получить доступ почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 20:19     изменение ptivat static
Посмотрите здесь:

C++ static-член
C++ static const
C++ static и const
C++ Назначение static ?
C++ static class
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
16.10.2013, 20:22     изменение ptivat static #2
Нет определения
C++
1
int ext::stat = 0;
Вызов статических методов через объекты? Разве что в последний рабочий день такой код писать...

И на будущее: приводите конкретные сообщения об ошибках.
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
16.10.2013, 20:25  [ТС]     изменение ptivat static #3
использую статическую функцию.

книжка говорит (с)
"На статические поля распространяется действие спецификаторов доступа поэтому статические поля, описанные как private, нельзя изменить с помощью операции доступа к области действия. Это можно сделать только с помощью статических методов."
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
16.10.2013, 20:29     изменение ptivat static #4
И что?

Замечание на тему отсутствия определения переменной было проигнорировано... Как и замечание об истользовании объектов со статическими методами...
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 <iostream>
using namespace std;
 
#include <string>
using std::string;
 
class ext
{
public:
    ext( )
    {
        stat=1999;
    }
 
    static int getStat()
    {
        return stat;
    }
 
private:
    static int stat;
};
 
int ext::stat = 0;
 
int main()
{
    //статические методы
    cout<< ext::getStat() <<endl;
    return 0;
}
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
16.10.2013, 20:32  [ТС]     изменение ptivat static #5
Цитата Сообщение от 0x10 Посмотреть сообщение
И что?

Замечание на тему отсутствия определения переменной было проигнорировано...
C++
1
int ext::stat = 0;
не пойму зачем объявлять в глобальной области??
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
16.10.2013, 20:34     изменение ptivat static #6
Область видимости та же самая - ext.
Внутри класса - объявление. Т.е. сообщение компилятору, что переменная существует.
За пределами - определение, т.е. требование выделения памяти.
Yandex
Объявления
16.10.2013, 20:34     изменение ptivat static
Ответ Создать тему
Опции темы

Текущее время: 18:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru