1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 116
1

Как правильно объявить статический метод

21.06.2015, 21:54. Показов 1426. Ответов 9
Метки нет (Все метки)

например
C++
1
2
3
4
5
6
7
class A
{
    private:
        static void method(); // объявление
};
 
// как правильно объявить реализацию?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.06.2015, 21:54
Ответы с готовыми решениями:

Как объявить статический метод класса?
выдает ошибку на 11 16 19 строку((((((( #include <iostream> using namespace std; class Sop...

Полиморфизм. Как в предке объявить статический массив, который можно будет использовать в наследниках?
Всем привет. Мне необходимо в классе предке объявить статический массив который можно будет...

Почему нельзя объявить в описание класса статический double?
Ближе к делу :) class SuperClass { public: SuperClass() {} static const int A = 0;...

Как правильно объявить структуру
Всем доброго времени суток.Есть задача:Составить программу формирования данных об успеваемости...

9
Модератор
Эксперт С++
12789 / 10243 / 6152
Регистрация: 18.12.2011
Сообщений: 27,434
21.06.2015, 21:57 2
Лучший ответ Сообщение было отмечено pety как решение

Решение

C++
1
2
3
4
 void A::method()
{
...// использовать только статические переменные класса
}
1
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 116
21.06.2015, 22:03  [ТС] 3
т.е. все тоже самое, только без static?

и еще : будет ли иметь этот метод доступ к закрытым членам?
ну типа
C++
1
2
3
4
5
6
7
8
9
10
11
class A
{
    private:
        int x;
        static void method(A);
};
 
void method(A a)
{
     ++(a.x);
}
0
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
21.06.2015, 22:15 4
Статический метод может обращаться только к статическим членам класса. В вашем случае x является нестатическим полем и программа не скомпилируется.
1
lss
940 / 868 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
22.06.2015, 02:13 5
Цитата Сообщение от iRomul Посмотреть сообщение
В вашем случае x является нестатическим полем и программа не скомпилируется.
А так скомпилируется?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
    private:
        
        static void method(A);
    public:
        int x;
};
 
 
void A::method(A a)
{
     ++(a.x);
}
0
Эксперт С++
8720 / 4300 / 958
Регистрация: 15.11.2014
Сообщений: 9,744
22.06.2015, 02:16 6
Лучший ответ Сообщение было отмечено pety как решение

Решение

Цитата Сообщение от pety Посмотреть сообщение
и еще : будет ли иметь этот метод доступ к закрытым членам?
да

Кликните здесь для просмотра всего текста
взять, да попробовать скомпилировать не судьба?
1
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 116
22.06.2015, 22:40  [ТС] 7
hoggy, но ведь...
0
17111 / 9130 / 2236
Регистрация: 30.01.2014
Сообщений: 15,917
22.06.2015, 22:43 8
Цитата Сообщение от pety Посмотреть сообщение
но ведь...
Ошибка в другом.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
    private:
        int x;
 
    public:
        static void method(A);
};
 
void A::method(A a) //указать, что это статическая функция класса А
{
     a.x= 5;
     std::cout << a.x;
}
1
Эксперт С++
8720 / 4300 / 958
Регистрация: 15.11.2014
Сообщений: 9,744
22.06.2015, 22:45 9
Цитата Сообщение от pety Посмотреть сообщение
hoggy, но ведь...
вам нужно подучить синтаксис с++
0
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 116
23.06.2015, 00:00  [ТС] 10
Цитата Сообщение от hoggy Посмотреть сообщение
вам нужно подучить синтаксис с++

Не по теме:

Деталей много, кое-что упускается стабильно, я только учусь, поэтому и задаю тупые вопросы
Не надо пинать меня ногами, я хороший :)

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2015, 00:00
Помогаю со студенческими работами здесь

Как правильно объявить вектор?
Только начинаю постигать STL. Подскажите, как заполнить случайными числами 1..9 значения...

Как правильно объявить fopen
Доброго времени суток. наткнулся на некоторого рода проблемку. Не могу объявить fopen.. Описываю...

Объявить статический массив размерности 20. Заполнить его «случайным образом»...
Задача 2. Объявить статический массив размерности 20. Заполнить его «случайным образом»....

Как правильно объявить внешнюю структуру
Начал изучение stm32 и возник вопрос Не ругайтесь за лузерский вопрос Задача: по внешнему...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru