コンパイラエラーの理解に問題があります。 rolo
指定されたオブジェクトに呼び出されて一時オブジェクトを、参照によって変数を受け取る関数に渡すことはできますか?
メンバ関数add()
は、参照することによりCard
変数を取ります
rolo.add(Card("Tony", "Hansen", "Writer", "12 E. St. NY, NY 33333", "555-9999"));
ノン:
class Card{ public: Card(string first,string last,string occupation,string address,string phoneNum); }; class Rolodex{ public: void add(Card& card); }; int main() { Rolodex rolo; rolo.add(Card("Tony", "Hansen", "Writer", "12 E. St. NY, NY 33333", "555-9999")); }
コンパイラは、私は、この行にエラーを与えています-const lvalue 'Card'型への参照は、 'Card'型の一時的な型にバインドできません。
私は、引数として一時オブジェクトを持つメソッドを呼び出すことは合法だとは思わない。
Card variable("Tony", "Hansen", "Writer", "12 E. St. NY, NY 33333", "555-9999");
rolo.add(variable);
は、なぜエラーが起こっている: 私は、次の代わりに行われた場合、それは優れていると思いますか?それを修正する方法はありますか?
ようこそ!適切な大文字を使用するようにタイトルを編集しました。すべての大文字で書くと、人々はあなたがそれらに叫んでいると思うでしょう。 – templatetypedef
"コピーコンストラクタ"を質問のどこでも "一時的"に置き換えると、それは意味をなさない... – Deduplicator
'variable = new Card ...'はエラーです。これはJavaではありません –