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

On Oct 16, 1:11 pm, "Jim Langston" <tazmas...@rocketmail.com> wrote:
> "djm" <djmlog...@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.google groups.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.


thanks a lot for your . i got a pretty good knowledge about when
to use a constructor. and in my case the default one does the the job.
thanks!

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