c++にてとあるコードを参考にnodeクラスで線形リストを作っている最中ですが
色々疑問があるので質問させていただきます。
1.main関数内でnode*headでポインタクラスを作っていますが
node node1のようにそのままクラスを作ることとどんな違いがあるのでしょうか?
2.for文中のstd::cout << *p.date << std::endl;
p = p.next;
式にはクラス型が必要ですというエラーメッセージが表示されていますが
どのように対処すればよいでしょうか?
3.下から四行目の
p = p.next;とありますが、これはpのnodeオブジェクトの中にある
node* nextポインタをpの外側にあるアドレス(p自体を指している)に入れている
という認識でよろしいのでしょうか?
#include<iostream>
class node {
int date;
node* next;
public:
node(int date, node* p2) {
this->date = date;
this->next = p2;
}
node(node* p1) {
this->next = p1;
this->date = 0;
}
operator int() {
return date, *next;
}
};
int main() {
node node3 = { 10 , nullptr};
node node2 = { 10 , &node3 };
node node1 = { 10 , &node2 };
node*head = &node1;
for (node* p = head;;) {
std::cout << *p.date << std::endl;
p = p.next;
}
std::cout << node1 << std::endl;
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/12 05:02