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

Статический метод и объекты - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.88
Only_HED
4 / 4 / 0
Регистрация: 28.05.2009
Сообщений: 29
17.05.2012, 14:51     Статический метод и объекты #1
Есть класс А с полями, методами и один статический метод.
Как мне через этот статический метод обратиться сразу ко всем объектам этого класса, а точнее к Method1()?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class A
{
public:
    int i;
    void Method1(){};
    void Method2(){};
    static void Method3(){
        //как тут вызвать Method1() ???
    };
}
int main(){
    A a1, a2,a3;
    list<A> my_list ;
    my_list.push_back(a1);
    my_list.push_back(a2);
    my_list.push_back(a3);
 
    //как вызвать Method3()
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2012, 14:51     Статический метод и объекты
Посмотрите здесь:

C++ метод-доступа, класс, объекты
C++ Статический элемент и метод класса
C++ Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже -->
Указатель на массив указателей на объекты, передать в метод объекта C++
C++ создать статический массив строк как статический массив указателей на строки, задание ниже -->
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KATbIK
 Аватар для KATbIK
86 / 81 / 10
Регистрация: 02.08.2011
Сообщений: 335
17.05.2012, 15:05     Статический метод и объекты #2
Бессмыслица получилась. ))

C++
1
2
3
4
5
6
7
8
9
10
...
Method3(list<A>& my_list)
{ 
    цикл 
    (*it).Method1();
}
 
int main()
...
A::Method3(my_list);
Only_HED
4 / 4 / 0
Регистрация: 28.05.2009
Сообщений: 29
17.05.2012, 15:15  [ТС]     Статический метод и объекты #3
Так вы имели в виду?

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
class A
{
public:
    A();
    void Method1(){
        cout<<"Method1()"<<endl;
    };
    void Method2(){};
    static void Method3(list<A>& my_list){
    list<A>::iterator it;
    for ( it=my_list.begin() ; it != my_list.end(); it++ )
        (*it).Method1();
    };
}
int main(){
    A a1, a2,a3;    
    list<A> my_list ;
    
 
    my_list.push_back(a1);
    my_list.push_back(a2);
    my_list.push_back(a3);
    A::Method3(my_list);
    return 0;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5943 / 5548 / 1783
Регистрация: 18.12.2011
Сообщений: 14,167
Завершенные тесты: 1
17.05.2012, 15:18     Статический метод и объекты #4
Цитата Сообщение от Only_HED Посмотреть сообщение
static void Method3(){ //как тут вызвать Method1() ???
Никак. Статические методы могут работать только со статическими членами.


Цитата Сообщение от Only_HED Посмотреть сообщение
my_list.push_back(a3); //как вызвать Method3()
C++
1
2
A::Method3();
a1.Method3();
Yandex
Объявления
17.05.2012, 15:18     Статический метод и объекты
Ответ Создать тему
Опции темы

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