From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,9982360189bfe852 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-02-02 14:46:58 PST Path: supernews.google.com!sn-xit-02!sn-xit-01!supernews.com!newsfeed.stanford.edu!news.isc.org!news.gnac.net!uunet!sac.uu.net!usenet.rational.com!not-for-mail From: "Mark Lundquist" Newsgroups: comp.lang.ada Subject: Re: OO and modules ( was Which book for ADA beginner ?) Date: Fri, 2 Feb 2001 14:07:49 -0800 Organization: Rational Software Message-ID: <95fbj5$nen$10@usenet.rational.com> References: <3A71400E.32057C6B@becker.k.pl> <3a72224b_2@news3.prserv.net> <3a74c829_2@news3.prserv.net> <3A759385.6BDA29D8@worldnet.att.net> NNTP-Posting-Host: ext-3074.rational.com X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2314.1300 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 Xref: supernews.google.com comp.lang.ada:4891 Date: 2001-02-02T14:07:49-08:00 List-Id: James Rogers wrote in message news:3A759385.6BDA29D8@worldnet.att.net... > [...] > C++ has added a new feature called name spaces to allow the > use and identification of multiple classes with the same name in > single program. This feature was added because the original concept > of all encapsulation occurring only in the class was found to be > too limiting, particularly when trying to use pre-defined libraries. The result is that C++ has three different modularity constructs: 1) From C, the file. File-based scoping along with extern declarations are the basis for the ".h/.C" convention. Direct textual inclusion of header files with the problems that attend to that approach. No semantic relationship between the header file and the "implementation file" (i.e. it is legal C/C++ for the implementation file to not fulfill all the protoptypes as declared in the header file. You will get a link error if all the symbol references are not satisfied somehow). 2) Classes 3) Namespaces So you have these three things that kind of overlap and don't seem to complement each other particularly well. I don't like it that namespaces can be textually extended, which means that they don't mean the same thing in all places. The main thing to remember is that C++, like C, is still a linker-based language. -- mark