C ++でのポインターの使用に問題があり、それが何であるかを理解できません。
LectureNodeというクラスがあります。
class LectureNode
{
public:
Lecture *LecturePtr;
LectureNode(Lecture lec)
{
LecturePtr = &lec;
}
};
このクラスのコンストラクターは問題なく機能します。私は別のクラスを持っています:
class LectureForest
{
LectureNode *LecNode;
list<Lecture>::iterator it;
public:
LectureForest(list<Lecture> lecs)
{
Makeset(lecs);
}
void Makeset(list<Lecture> lecs)
{
for(it = lecs.begin(); it != lecs.end(); it++)
{
LecNode = LectureNode(*it);
}
}
この最後の行で問題が発生します。(* it)はLectureNodeコンストラクターに渡され、LectureNodeは正常に作成されますが、LecNodeはそれをポイントせず、代わりにデバッガーが不正なポインターを示します。
ありがとうございました。