Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #36691

Re: "default constructor"

Path csiph.com!aioe.org!.POSTED!not-for-mail
From Arne Vajhøj <arne@vajhoej.dk>
Newsgroups comp.lang.java.programmer, comp.lang.c++
Subject Re: "default constructor"
Date Wed, 21 Jun 2017 12:52:41 -0400
Organization Aioe.org NNTP Server
Lines 43
Message-ID <oie891$ome$1@gioia.aioe.org> (permalink)
References <default-constructor-20170619023834@ram.dialup.fu-berlin.de>
NNTP-Posting-Host PBuS014lhzVyHjLbXmo/ZQ.user.gioia.aioe.org
Mime-Version 1.0
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding 7bit
X-Complaints-To abuse@aioe.org
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0
X-Notice Filtered by postfilter v. 0.8.2
Content-Language en-US
Xref csiph.com comp.lang.java.programmer:36691 comp.lang.c++:51499

Cross-posted to 2 groups.

Show key headers only | View raw


On 6/18/2017 9:49 PM, Stefan Ram wrote:
>    A default constructor is a constructor that misses something.
> 
>    In C++, it is a constructor that can be called with missing
>    arguments (no arguments).
> 
>        C++ 12.1p4:
> 
>        A default constructor for a class X is a constructor of
>        class X for which each parameter that is not a function
>        parameter pack has a default argument (including the
>        case of a constructor with no parameters).
> 
>    In Java, it is a constructor that is generated when an
>    explicit constructor declaration is missing. The generated
>    constructor just so happens to have no parameters, but
>    an explicitly declared constructor with no parameters is
>    not a default constructor, but replaces it:
> 
>        JLS8 13.4.12
> 
>        Adding one or more constructor declarations to the
>        source code of such a class will prevent this default
>        constructor from being implicitly declared, effectively
>        deleting a constructor, unless one of the new
>        constructors also has no parameters, thus replacing the
>        default constructor.
> 
>    Summary (simplified): In C++, "default constructor" means
>    "any constructor that does not require an argument".
>    In Java, it means "the constructor that is generated if
>    the user does not declare any constructor".

So?

C++ and Java are two different languages.

They also have somewhat different associated terminologies.

No surprise.

Arne

Back to comp.lang.java.programmer | Previous | Next | Find similar | Unroll thread


Thread

Re: "default constructor" Arne Vajhøj <arne@vajhoej.dk> - 2017-06-21 12:52 -0400

csiph-web