エラー、バグ、質問 - ページ 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); }
};
これは、コンストラクタ本体が呼ばれる前にも使用されています。
ボディに初期化リストを入れてはどうでしょう?比喩的に言えば、クラスオブジェクト(これを含む)は':'の記号で初期化されます。
 

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

だって、const int a; じゃないとできないでしょ?

比喩的に言えば、(このクラスも含めてクラスのオブジェクトは':'の記号で初期化されます。

了解です。
 
モデレーターの皆様、マーケットで有料で販売されている製品(インジケーター)が無料で作れるのであれば、その作品をフォーラムでオープンに展示し、議論することは、禁止されることを恐れず可能でしょうか?あるいは、どのような方法で進めるのがベストなのでしょうか?
 
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