Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > вложенный класс


Автор: mrgloom 29.5.2014, 13:18
http://ideone.com/wzkY7X


Код

    #include <iostream>
    using namespace std;
     
    class c1
    {
    public:
    class c2
    {
    protected:
    static int func(int i);
    };
     
    public:
    int a1;
    private:
    int a2;
    };
     
    int c1::c2::func(int i)
    {
    c1::a2= 1;
    printf("func");    
    return 0;
    }
     
    int main() {
     
    //c1::c2::func(0);
    return 0;
    }



как из c1::c2::func добраться до с1::a1 и c1::a2? 

Автор: mrgloom 29.5.2014, 13:41
можно переменную сделать static

но я не понимаю почему её нельзя изменить.

т.е. так норм
Код

int f= c1::a1;
int f1= c1::a2;

а так ругается
Код

c1::a1= 1;
c1::a2= 2;

Автор: baldina 29.5.2014, 13:45
если переменная - член класса не статическая, она  принадлежит объекту. а где тут объект?

Добавлено через 2 минуты и 33 секунды
http://ideone.com/ogyN5m

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)