comp.lang.ada
 help / color / mirror / Atom feed
From: jmartin@oahu.cs.ucla.edu (Jay Martin)
Subject: Re: C++ Envy
Date: 9 Jan 1995 20:07:08 -0800
Date: 1995-01-09T20:07:08-08:00	[thread overview]
Message-ID: <3et15c$au2@oahu.cs.ucla.edu> (raw)
In-Reply-To: 3eju61$3kn@nic.umass.edu

yang@twain.ucs.umass.edu (Huayong YANG) writes:

:SBS Engineering (progers@Starbase.NeoSoft.COM) wrote
:: Tired of hearing about all those things that C++ can do that Ada87 can't?
:: Then here's a cute trick in C++ that you'll like:

:: #define private public
:: #include compromised_class.h
:: #define private private

:: Confused?  The above says that when compiling the class header for
:: compromised_class, all the private stuff will be public, and thus
:: available to the world.  A friend showed me the above, and quoted the
:: source as saying that eternal damnation was insufficient punishment...
:: Hard to argue with.

:Tell me how the above trick compromises the following class:

:class T
:{
:  int an_item;
:public:
:  int another;
:};

:The data member an_item stays private, it seems to me.

:--
:Huayong

Yeah it won't but for large classes I expect most C++-ers will use:

class T {
 public:
   ...
 private:
   ...
}//T//

style ala Coplien (Advanced C++:Prog Style and Idioms).

This is due to that fact that users of the class do not want
to have to skip over the top secret implementations details
to get to the class interface (public methods) when reading the
class.  Of course the typical C programmers who get orgasms
looking at super efficient implementation details may 
disagree.  Thus, I suspect that this trick will work with most
large classes. Jay



  parent reply	other threads:[~1995-01-10  4:07 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1995-01-05 17:12 C++ Envy SBS Engineering
1995-01-06 17:21 ` Huayong YANG
1995-01-09 16:13   ` Cyrille Comar
1995-01-10  4:07   ` Jay Martin [this message]
  -- strict thread matches above, loose matches on Subject: below --
1995-01-12  9:39 R.A.L Williams
     [not found] ` <3f9bha$r16@gnat.cs.nyu.edu>
     [not found]   ` <3fcjp5$b0v@cronkite.seas.gwu.edu>
1995-01-16 18:48     ` Robert Dewar
     [not found]     ` <3fe433$evq@nonews.col.hp.com>
     [not found]       ` <3fj4oa$9a8@cronkite.seas.gwu.edu>
1995-01-20  5:30         ` Jay M Martin
1995-01-21 21:13           ` David O'Brien
1995-01-22  6:39             ` Jay M Martin
1995-01-23 14:37               ` Jules
1995-01-24 18:56                 ` Robert A Duff
1995-01-25 15:19                   ` Robert I. Eachus
1995-01-22 21:18             ` Robert Dewar
1995-01-23 22:03               ` Charles H. Sampson
1995-01-25  6:38               ` David O'Brien
1995-01-25 15:49                 ` Jay Martin
1995-01-25 23:47                   ` Jay Martin
1995-01-28 18:52                 ` Chris Warack <sys mgr>
1995-01-30 16:44                   ` Robert I. Eachus
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox