Afficher un message
Vieux 16/10/2007, 09h11   #6
Jim Langston
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: making a struct array NULL?

"djm" <djmlog103@gmail.com> wrote in message
news:1192521446.417753.109310@e9g2000prf.googlegro ups.com...
> On Oct 16, 12:40 pm, "Jim Langston" <tazmas...@rocketmail.com> wrote:
>> "djm" <djmlog...@gmail.com> wrote in message
>>
>> news:1192519330.761691.111890@k35g2000prh.googlegr oups.com...
>>
>>
>>
>> > hi,
>> > lets say ive this struct array in my header file

>>
>> > public:
>> > IndepHTable();
>> > private:
>> > struct
>> > {
>> > string word;
>> > List defList;
>> > } dictionary[TABLE_SIZE];

>>
>> > how can i make the elements in the array null from the constructor?

>>
>> > will this work?

>>
>> > IndepHTable::IndepHTable()
>> > {

>>
>> > word.clear();
>> > defList=NULL;

>>
>> > }
>> > or something like
>> > this?

>>
>> > IndepHTable::IndepHTable(dictionary l)
>> > {
>> > for(int i=0;i<29;i++)
>> > {
>> > l[i].word.clear();
>> > l[i].defList=NULL;
>> > }
>> > }

>>
>> > i tried but none of the work. can someone me out?
>> > thanks

>>
>> if your string is a std::string then it will already be "cleared". I
>> don't
>> know what your List is, what does it's default constructor do?
>>
>> You are saying defList = NULL, but that presumes that List is a pointer,
>> is
>> it? Probably not, it's probably a class.
>>
>> Most likely, you won't have to do anything, although, again, it depends
>> on
>> what List is.

>
> hmmm then do i actually need a constructor here?
> cuz
> 1. the string wil have no initial value?
> 2. the constructor in List class also makes the contents of "deflist"
> to NULL


No. You do not need a custom constructor here. The default constructor is
fine for your purposes. The default constructor for a class will call all
the default constructors for contained class instances.

You would need a custom constructor if you need to do more than that. I.E.
Call a non default constructor (for instance, initializing word to "None"
instead of "") or if a variable doesn't have a default constructor (floats,
ints, chars, etc...the built in types).

Whenever you add a variable to a class think, "Will the default constructor
be fine for my purposes?" If not, add it to the custom constructor
(creating it if it doesn't exist).

Some people may initialize an instance in the custom constructor to the same
as the default constructed just to be explicit, to say, "Yeah, I REALLY want
this string to be "" ". But is not required.


  Réponse avec citation
 
Page generated in 0,06243 seconds with 9 queries