だから私はいくつかの簡単な質問/構造を持っています:
class Class1 {
public:
Class1() {};
~Class1() {};
protected:
std::string name;
}
class Class2 : public Class1
{
public:
Class2() : number(id_generator++) {
name = "My-name"; // (1) want to access field inherited from Parent
};
private:
const unsigned int number;
static unsigned int id_generator;
}
コンパイラは (1) に対して不平を言います: 'name' was not declared in this scope
。なにが問題ですか?シンプルに見えますが、私には見えません。
EDIT1:エラーが実際にここでのみ発音されていることに気付きました(コードへのリンクはこちら):
#include <string>
template<int dim>
class Class1 {
public:
Class1() {};
~Class1() {};
protected:
std::string name;
};
template<int dim>
class Class2 : public Class1<dim>
{
public:
Class2() : number(id_generator++) {
name = "My-name"; // (1) want to access field inherited from Parent
};
private:
const unsigned int number;
static unsigned int id_generator;
};
int main() {}
どうやら私はテンプレートで何かを台無しにしています。最初に書いてなくてすみません。