delorie.com/archives/browse.cgi | search |
From: | "Campbell, Rolf [SKY:1U32:EXCH]" <moscoop AT americasm01 DOT nt DOT com> |
Newsgroups: | comp.os.msdos.djgpp,comp.lang.c++ |
Subject: | Accessor methods are annoying. (Was: Re: TABLE OF POINTERS TO FUNCTIONS |
+ OTHER) | |
Date: | Fri, 17 Mar 2000 12:35:56 -0500 |
Organization: | Nortel Networks |
Lines: | 33 |
Message-ID: | <38D26CFC.16E69D47@americasm01.nt.com> |
References: | <8am435$j8i$1 AT tron DOT sci DOT fi> <38D1079A DOT 45700792 AT americasm01 DOT nt DOT com> <l4t2dsg398i4e02b147mv18i89a5tvo0nq AT 4ax DOT com> |
NNTP-Posting-Host: | wmerh0tk.ca.nortel.com |
Mime-Version: | 1.0 |
X-Mailer: | Mozilla 4.72C-CCK-MCD [en] (X11; I; HP-UX B.10.20 9000/785) |
X-Accept-Language: | en |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
Damian Yerrick wrote: > >And most of the time they are just used to force 'read-only' for > >public access. To start with, I think this should have been part > >of the C++ specification (const public: could mean that outside > >that class's scope it is treated as const). > > But that would break all existing programs if you figured out a better > implementation of the class that didn't use that variable. That is true for my example about 'const public:'. But many other languages offer built-in method of trapping reads/writes to variables. Using this scheme, accessors and mutators only need to be written when the library changes instead of all the time. In C++ this ability is not 'built-in', but it is available (I've written a templatized library to do just this). That class acts just like any other class with a few exceptions. I think it is impossible to get it perfect in C++ (I can't cope with passing that member variable to a function by reference). But just about everything else works... > Data > hiding is one of the reasons why accessor methods exist. How hard is > my_string.length() > when string::length() is inlined to return my_string._length? Data hiding is good for backwards compatability, but you don't need backwards compatability until the class changes... -- (\/) Rolf Campbell (\/)
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |