בונה העתק ברירת מחדל ומפעיל הקצאת ברירת מחדל

מה ההבדל בין אחד מאלה המשמשים בקוד כפי שהשתמשתי כאן . (שורה 44 מודעה שורה 45 שניהם עובדים בסדר)

קטע:

Date temp = *this;  //ASSIGNMENT OPERATOR CALL(PROVIDED BY COMPILER)
//Date temp(*this); //COPY CONSTRUCTOR CALL(PROVIDED BY COMPILER)

דעתי : האם זה במהלך מטלה כמו אובייקט 1 = אובייקט 2; תוכן של אובייקט 2 נמחק ומונח באובייקט 1 בעוד שאם אותו דבר קורה באמצעות קונסטרוקטור העתק תוכן של אובייקט 2 עדיין נשאר (אני מתכוון בדיוק כמו שהמילה מציעה "העתק").

הערה: אגב הקוד שלי הידור בסדר ב- Microsoft Visual C ++ 2008 אבל זה נתן אזהרה

  prog.cpp: In function ‘std::ostream& operator<<(std::ostream&, const Date&)’:
  prog.cpp:103: warning: deprecated conversion from string constant to 

ב- ideone.com. כל הסיבות לכך.

0
задан interjay 9 August 2011 в 11:28
поделиться