🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.bug
Article #335

Member initialization via member initialization list vs. statement in constructor body

#335
From: David Franke
Date: Mon, 07 Aug 1989 15:39
44 lines
1372 bytes
g++ version 1.35.1- compiles the following without incident:

    class class1 {
     public:
      int var1;
    };

    class class2 : public class1 {
     public:
      class2 ( int val ) { var1 = val; }
    };

    class class3 : public class1 {
     public:
      class3 ( int val ) { var1 = val+1; }
    };

but reports:

In method struct class3 *class3::class3 (int):
testb1.c:14: multiple initializations given for member `var1'

on the following source:

    class class1 {
     public:
      int var1;
    };

    class class2 : public class1 {
     public:
      class2 ( int val ) : var1(val) {}
    };

    class class3 : public class1 {
     public:
      class3 ( int val ) : var1(val+1) {}
    };

Aren't these equivalent?  Lippman, Section 6.1 (p. 242-243) 
leads me to believe they are.
 David Franke, MCC CAD Program | ARPA: franke@mcc.com | Phone: [512] 338-3641
 UUCP: {uunet,harvard,gatech,pyramid}!cs.utexas.edu!milano!cadillac!franke
Technical Details
Message-ID: <2107@cadillac.CAD.MCC.COM>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watmath!uunet!cs.utexas.edu!milano!cadillac!dvscotty!franke

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watmath!uunet!cs.utexas.edu!milano!cadillac!dvscotty!franke
From: franke@dvscotty.cad.mcc.com (David Franke)
Newsgroups: gnu.g++.bug
Subject: Member initialization via member initialization list vs. statement in constructor body
Message-ID: <2107@cadillac.CAD.MCC.COM>
Date: 7 Aug 89 15:39:08 GMT
Sender: news@cadillac.CAD.MCC.COM
Lines: 44