home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / gnu / g / help / 1190 < prev    next >
Encoding:
Internet Message Format  |  1992-09-04  |  2.2 KB

  1. Xref: sparky gnu.g++.help:1190 comp.lang.c++:13306
  2. Path: sparky!uunet!stanford.edu!ames!olivea!spool.mu.edu!sdd.hp.com!usc!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!thor.UUCP!rmartin
  3. From: rmartin@thor.UUCP (Bob Martin)
  4. Newsgroups: gnu.g++.help,comp.lang.c++
  5. Subject: Re: PROBLEM DELETING A VECTOR OF CLASS OBJECTS
  6. Message-ID: <rmartin.715616269@thor>
  7. Date: 4 Sep 92 14:17:49 GMT
  8. References: <Bu16wq.L6E@knot.ccs.queensu.ca>
  9. Sender: gnulists@ai.mit.edu
  10. Followup-To: comp.lang.c++
  11. Organization: Gatewayed from the GNU Project mailing list help-g++@prep.ai.mit.edu
  12. Lines: 41
  13.  
  14. rollins@bart.ee.queensu.ca (Mark Rollins) writes:
  15.  
  16.  
  17. |PROBLEM DELETING A VECTOR OF CLASS OBJECTS
  18. |------------------------------------------
  19.  
  20. |Using the syntax of Stroustrup's 1st edition, pg. 162
  21. |and g++ version 2.2.2, libg++ version 2.1, and SunOS 4.2.2 I get
  22. |correct results but a compiler warning:
  23.  
  24. |   g++ -o bin/junk badmem.cc -lg++ -lm
  25. |   badmem.cc: In method `Vector::~Vector ()':
  26. |   badmem.cc:9: warning: use of array size with vector delete is anachronistic
  27.  
  28. |If I omit the array size, the Vector does not get de-allocated
  29. |properly using the destructor, and all virtual memory gets eaten up
  30. |rather quickly. (It's probably just deleting the 1st one in the array).
  31.  
  32. |What is the proper syntax for deleting a vector of class objects ?
  33. |Or is there any way to turn off this annoying warning flag ?
  34.  
  35. |-----------------------------------------------------------------
  36. |Working version that produces a warning:
  37. |-----------------------------------------------------------------
  38. |  ~Vector() { delete [size] v;}
  39.  
  40. |-----------------------------------------------------------------
  41. |Buggy version that quickly uses up all virtual memory:
  42. |  (difference is in the ~Vector() destructor)
  43. |-----------------------------------------------------------------
  44. |  ~Vector() { delete v;}
  45.  
  46. The correct syntax is "delete [] v;"  The 'size' parameter is an
  47. anachronism, but the brackets are not!
  48.  
  49.  
  50. --
  51. Robert Martin                        Training courses offered in:
  52. R. C. M. Consulting                       Object Oriented Analysis
  53. 2080 Cranbrook Rd.                        Object Oriented Design
  54. Green Oaks, Il 60048 (708) 918-1004       C++
  55.