...アレイ構造
要素クラスは、
class foo {
private:
int attr;
public:
foo(){attr = 10;}
int get_attr(){return attr;}
void set_attr(int a){attr =a;}
};
class element_foo {
private:
foo data;
element_foo *ptr_next;
public:
element_foo(){ptr_next = NULL;}
element_foo(int dat){data.set_attr(dat); ptr_next = NULL;}
element_foo(int dat, element_foo next){
data.set_attr(dat);
ptr_next = &next;
}
foo get_data(){return data;}
element_foo get_next(){return *ptr_next;}
void print_array(){
if (ptr_next == NULL) {
std::cout<< data.get_attr()<<std::endl;
}
else {
std::cout<< data.get_attr()<<std::endl;
this->get_next().print_array();
}
}
};
int main (int argc, char * const argv[]) {
// insert code here...
element_foo a1(10);
element_foo a2(15,a1);
element_foo a3(20,a2);
a3.print_array();
std::cout << "Hello, World!\n";
return 0;
}
次のクラスのアドレスではなく、このコードを指している必要がありますそれはセグメンテーションフォールトになる...なぜ?私のミスはどこですか?
セマンティック・ノート:実装しているのは、ベクトルではなくリストです。典型的には、ベクトルは、メモリ内に連続して格納された要素の動的な集まりを意味すると理解される。もちろん、あなたが望むものを意味することはできますが、他人を混乱させる可能性があります。 –