Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Dec 95 18:11:33 EDT
From:      M C Wong <mcw@hpato.aus.hp.com>
To:        freebsd-questions@freefall.FreeBSD.org (freebsd-questions@freefall.cdrom.com)
Subject:   g++ 2.6.3 problem with temp object, fixed in 2.7 ?
Message-ID:  <199512150711.AA107661496@hp.com>

next in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----

Hi,
    When compiling the following program, I got error :

lespoir:/local/home/wongm 107 > g++ -o doo doo.cc
doo.cc: In function `int ctor()':
doo.cc:27: request for member `foo' in `myBar(Foo)', which is of non-aggregate type `Bar ()(Foo)'
doo.cc:29: no matching function for call to `Bar::Bar (Bar ()(Foo))'
doo.cc:15: candidates are: Bar::Bar(const Foo &)
doo.cc:16:                 Bar::Bar(Bar &)
doo.cc:29: in base initialization for class `Bar'

It seems that gcc does not think of myBar is an object, 8-((

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include <stream.h>

class Foo
{
public:
   Foo(int) { };
   ~Foo() {} ;

   void bar( ) { cout << "bar called" << endl; } ;
};

class Bar
{
public:
    Bar(const Foo&) {};
    Bar(Bar&) {};
    ~Bar() {};

    void foo( ) { cout << "foo called" << endl; };
};

const int myInt = 7;

int ctor()
{
    Bar myBar(Foo(myInt));
    // myBar.foo( );
    // Bar yourBar(  Bar &myBar = Bar( Foo( myInt ) ) ); /* works */
    Bar yourBar( myBar );

    // Bar yourBar(Bar(Foo(myInt))); /* works */
    yourBar.foo( );


    return 0;
}

main( )
{
    ctor( );
}
~

- --
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 M.C Wong                                  Email: mcw@hpato.aus.hp.com 
 Australian Telecom Operation              Voice: +61 3 9210 5568
 Hewlett-Packard Australia Ltd             Fax:   +61 3 9210 5550
 P.O. Box 221, Blackburn 3130, Australia   OS: FreeBSD-1.1.5.1
 http://www-ato.aus.hp.com/~mcw

-----BEGIN PGP SIGNATURE-----
Version: 2.6.2i

iQCVAwUBMNEfoEmThh0X7Um5AQEqOQP/bd2IlVRsDO2r14DZI9GKaB6P/2CyFW6g
YAs3D/3RHc08gf79vx3OFQfWPczvyMSE+XbicGZILVF3qR63UmTd6JP7w/mQ8XxR
07BkvVidZvtca0rBc60l6FQ6vWf9N/mOzNPWvxYEiaD8OHuwlo9gldShudZCTj2K
rLtlDiTFog8=
=pqTz
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199512150711.AA107661496>