template<typename T>
class A {
public:
A(const T &t)
{
std::cout << t;
}
};
class C :
public A<int>,
public A<char>
{
public:
C(char c) : A<char>(c) {}
};
void main()
{
C obj('c');
}
以下のプログラムをコンパイルしている間、コンパイラは次のエラーを出しています。 クラス "A <int>"のデフォルトのコンストラクタはありませんテンプレートの継承の仕組みは?
内部的にどのようなコンパイラがありますか?
コンパイラが内部で行うことは誰が気にしますか。基本サブオブジェクトのいずれかに初期化子を指定していない場合は、そのすべてが重要です。 –
なぜ 'A 'の 'C'の部分を作りますが、' A 'の部分は作っていませんか? –
NathanOliver
コンパイラが問題の内容を正確に伝えています。 – SergeyA