クラスの作成に関しては、パブリック データ メンバーはないと言われたことがあります。それは問題ありません。理由は理解していますが、ここに私の問題があります。クラスで使用している構造体があります (線形リンク リスト)。構造体フィールド (配列) の 1 つを NULL に初期化して、クライアントがガベージ値でいっぱいの初期化されていない構造体ではなく、有効な構造体を渡していることを確認できるようにしたいと思います。C++ では構造体宣言にデフォルト値を設定できないことがわかりました。では、クライアントからガベージを受け取るのを防ぐにはどうすればよいでしょうか?
struct task {
char *description;
char *name;
float time_remaining;
float time_spent;
};
それから私のクラスでは、次のようなことをしようとしています:
//I am making a copy of "to_add" and storing it in the LLL
int list::add_to_list(const task & to_add)
{ /.../ }
ユーザーが初期化されていない「タスク」をリンクされたリストに追加したくありません...どうすればよいですか? その構造体をクラスに変換し、データ メンバーをプライベートに移動したとき、データ メンバーにアクセスしてそれらのコピーを作成しようとすると、大量の問題が発生しました。var の値に影響を与えるようなことをしないように細心の注意を払いましたが、コンパイラから逃れることができず、「エラー: 'const task' を 'char* task::get_comp_name の 'this' 引数として渡しています」というエラーが表示されました。 ()' は修飾子を破棄します [-fpermissive]" ("get_comp_name") は、値を編集しておらず、コピーを渡すだけだと確信していたゲッターの 1 つでした) 自分を撃つ前に助けてください。顔に(表情に。