오류, 버그, 질문 - 페이지 1737

 
아니면 더 간단하게
class A
{
   const int a;
  
  A() : a( this .f()) {}
  
   int f() { return ( 0 ); }
};
왜 전혀 컴파일되지 않습니까? 이것은 생성자 본문이 호출되기 전에 사용됩니다.
 
fxsaber :
아니면 더 간단하게
class A
{
   const int a;
  
  A() : a( this .f()) {}
  
   int f() { return ( 0 ); }
};
왜 전혀 컴파일되지 않습니까? 이것은 생성자 본문이 호출되기 전에 사용됩니다.
본문에 초기화 목록을 포함하지 않는 이유는 무엇입니까? 비유적으로 말해서 클래스 객체 ( this 포함)는 ':' 기호로 초기화됩니다.
 

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

왜냐하면 const int; 그렇지 않으면 가능하지 않습니까?

비유적으로 말해서 클래스 객체 ( 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
사유: