class A {}; class B { public: staticint 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 )
{
const int a;
A() : a(this.f()) {}
int f() { return(0); }
};
或者更简单的情况。
{
const int a;
A() : a(this.f()) {}
int f() { return(0); }
};
Ilyas:
Почему список инициализации Вы не включаете в тело?
因为const int 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 )
网络引擎错误
任何广告都是被禁止的,禁止是立即的。你不想冒任何风险。
最好有一个博客主题,你可以在那里做任何事情。