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


Groups > comp.lang.c++ > #4662

Re: array of objects of parametrized constructor

From "Alf P. Steinbach /Usenet" <alf.p.steinbach+usenet@gmail.com>
Newsgroups comp.lang.c++
Subject Re: array of objects of parametrized constructor
Date 2011-05-04 11:11 +0200
Organization A noiseless patient Spider
Message-ID <ipr4j8$r2v$1@dont-email.me> (permalink)
References <f675e5f2-a0d6-471a-9d61-07fe605c7396@glegroupsg2000goo.googlegroups.com> <ippke2$6a7$1@dont-email.me> <92bdajFj03U16@mid.individual.net>

Show all headers | View raw


* Ian Collins, on 04.05.2011 00:18:
> On 05/ 4/11 07:29 AM, Alf P. Steinbach /Usenet wrote:
>> * asit, on 03.05.2011 20:32:
>>> consider this class
>>>
>>> class A
>>> {
>>>     int a;
>>> public:
>>>     A(int x):a(x)
>>>     {
>>>         cout<<"Parametrized constructor"<<endl;
>>>     }
>>> };
>>>
>>> How can I create array of objects ??
>>>
>>> I can't add the default constructor and overload the parametrized
>>> constructor.
>>
>> The simplest solution is to use std::vector, from the<vector>  header.
>>
>> E.g.
>>
>>       std::vector<A>   myArray;
>>
>>       myArray.push_back( A( 1 ) );
>>       //...
>>
>> And that's what you should be doing anyway, as a beginner. Don't mess around
>> with raw arrays. For that matter, don't add assembly language stubs either. ;-)
>
> In this case, using a temporary array as a helper would be fine:
>
>    A tmp[] = { 1,2,3,4 };
>    std::vector<A> a(tmp, tmp+(sizeof(tmp)/sizeof(A)) );

I disagree.

Even an experienced programmer like yourself gets it, well not technically wrong 
but pretty imperfect. :-(

If done, it would better look like this:

     int const tmp[] = { 1,2,3,4 };
     std::vector<A> a(tmp, tmp+(sizeof(tmp)/sizeof(*tmp)) );

But since it's so easy to get wrong, and since it creates an association where 
use of raw arrays seems to be OK in general, I recommend not doing it.


Cheers,

- Alf

-- 
blog at <url: http://alfps.wordpress.com>

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

array of objects of parametrized constructor asit <lipun4u@gmail.com> - 2011-05-03 11:32 -0700
  Re: array of objects of parametrized constructor "Alf P. Steinbach /Usenet" <alf.p.steinbach+usenet@gmail.com> - 2011-05-03 21:29 +0200
    Re: array of objects of parametrized constructor Ian Collins <ian-news@hotmail.com> - 2011-05-04 10:18 +1200
      Re: array of objects of parametrized constructor "Alf P. Steinbach /Usenet" <alf.p.steinbach+usenet@gmail.com> - 2011-05-04 11:11 +0200
        Re: array of objects of parametrized constructor Ian Collins <ian-news@hotmail.com> - 2011-05-04 21:24 +1200
          Re: array of objects of parametrized constructor "Alf P. Steinbach /Usenet" <alf.p.steinbach+usenet@gmail.com> - 2011-05-04 11:42 +0200
            Re: array of objects of parametrized constructor Ian Collins <ian-news@hotmail.com> - 2011-05-04 21:34 +1200
  Re: array of objects of parametrized constructor Noah Roberts <dont@email.me> - 2011-05-03 14:27 -0700
    Re: array of objects of parametrized constructor Leigh Johnston <leigh@i42.co.uk> - 2011-05-03 23:00 +0100

csiph-web