Ошибки, баги, вопросы - страница 1737

 
Или еще проще ситуация
class A
{
  const int a;
  
  A() : a(this.f()) {}
  
  int f() { return(0); }
};
Почему это, вообще, компилируется? this используется еще ДО вызова тела конструктора.
 
fxsaber:
Или еще проще ситуация
class A
{
  const int a;
  
  A() : a(this.f()) {}
  
  int f() { return(0); }
};
Почему это, вообще, компилируется? this используется еще ДО вызова тела конструктора.
Почему список инициализации Вы не включаете в тело? Образно говоря, объект класса (в том числе его this) инициализируется  на знаке ':'
 

Ilyas:
Почему список инициализации Вы не включаете в тело?

Потому что const int a; Иначе же нельзя?

Образно говоря, объект класса (в том числе его this) инициализируется  на знаке ':'

Понял.
 
Ув. модераторы, если продукт (индикатор), находящийся платно в Маркете, сделать бесплатным, можно-ли открыто показывать  и обсуждать его работу на форуме, не опасаясь бана? Или, как лучше поступить?
 
Yousufkhodja Sultonov:
Ув. модераторы, если продукт (индикатор), находящийся платно в Маркете, сделать бесплатным, можно-ли открыто показывать  и обсуждать его работу на форуме, не опасаясь бана? Или, как лучше поступить?
любая реклама запрещена, бан сразу же.  лучше не рисковать 
 

Ошибка при компиляции

class A {};
class B {
public:
        static int k;
};
int B::k = 0;
#define MACRO( classC, classB )      \
class classC : public classB {       \
public:                              \
        classC( A *aa ) : a( aa ) {} \ //(1)
        A *a;                        \ //(2)
        int f( int i );              \
};                                   \
int classC::f( int i )               \
{                                    \
                classB::k = i;       \ //error: '::' - open parenthesis expected
        int j = classB::k;           \ //нормально
        return j;                    \
}
MACRO( C, B )
А если например удалить строки (1) и (2) - то ошибки нет. А чем они помешали!?
 
 
Vladislav Andruschenko:
любая реклама запрещена, бан сразу же.  лучше не рисковать
Лучше в блоге ветку завести, там можно все.
 
Alexey Volchanskiy:
Лучше в блоге ветку завести, там можно все.
))))))) и рекламить свой блог ))))))))
 
Всем привет. Всплыл такой непонятный отступ снизу и никак не могу его убрать.
Файлы:
k1amn19a2h.png  37 kb
Причина обращения: