making a struct array NULL?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • djm

    making a struct array NULL?

    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::In depHTable()
    {

    word.clear();
    defList=NULL;

    }
    or something like
    this?

    IndepHTable::In depHTable(dicti onary 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 help me out?
    thanks

  • Jim Langston

    #2
    Re: making a struct array NULL?

    "djm" <djmlog103@gmai l.comwrote in message
    news:1192519330 .761691.111890@ k35g2000prh.goo glegroups.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::In depHTable()
    {
    >
    word.clear();
    defList=NULL;
    >
    }
    or something like
    this?
    >
    IndepHTable::In depHTable(dicti onary 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 help 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.



    Comment

    • djm

      #3
      Re: making a struct array NULL?

      On Oct 16, 12:40 pm, "Jim Langston" <tazmas...@rock etmail.comwrote :
      "djm" <djmlog...@gmai l.comwrote in message
      >
      news:1192519330 .761691.111890@ k35g2000prh.goo glegroups.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::In depHTable()
      {
      >
      word.clear();
      defList=NULL;
      >
      }
      or something like
      this?
      >
      IndepHTable::In depHTable(dicti onary 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 help 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.
      sorry for the lack of info.
      the pruporse is to make a linked list with rehasing techniques. the
      list is a class and that has nodes, the values of the objects in the
      nodes are made in to initial values by thier constructors, as you said
      i realise that i dont need to make the defList to NULL cuz its already
      made null. but what about the string? what if i want to make it null
      so that it wont have any garbage values when i declare them?

      Comment

      • djm

        #4
        Re: making a struct array NULL?

        On Oct 16, 12:40 pm, "Jim Langston" <tazmas...@rock etmail.comwrote :
        "djm" <djmlog...@gmai l.comwrote in message
        >
        news:1192519330 .761691.111890@ k35g2000prh.goo glegroups.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::In depHTable()
        {
        >
        word.clear();
        defList=NULL;
        >
        }
        or something like
        this?
        >
        IndepHTable::In depHTable(dicti onary 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 help 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

        Comment

        • Jim Langston

          #5
          Re: making a struct array NULL?

          "djm" <djmlog103@gmai l.comwrote in message
          news:1192520873 .134114.54960@i 38g2000prf.goog legroups.com...
          On Oct 16, 12:40 pm, "Jim Langston" <tazmas...@rock etmail.comwrote :
          >"djm" <djmlog...@gmai l.comwrote in message
          >>
          >news:119251933 0.761691.111890 @k35g2000prh.go oglegroups.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::In depHTable()
          {
          >>
          word.clear();
          defList=NULL;
          >>
          }
          or something like
          this?
          >>
          IndepHTable::In depHTable(dicti onary 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 help 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.
          >
          sorry for the lack of info.
          the pruporse is to make a linked list with rehasing techniques. the
          list is a class and that has nodes, the values of the objects in the
          nodes are made in to initial values by thier constructors, as you said
          i realise that i dont need to make the defList to NULL cuz its already
          made null. but what about the string? what if i want to make it null
          so that it wont have any garbage values when i declare them?
          A std::string already gets initialized to "" by it's default consturctor.
          So you don't have to do anything. If you really really really want to
          though you could do:

          IndepHTable::In depHTable(): world("")
          {
          }

          but "" is what the default constructor uses if you don't pass it anything
          (which you don't by not calling a constructor specifically.

          In main line this is the difference between:

          std::string word;
          std::string word("");

          They both make word initialize to "". I.E. no net change with one over the
          other.


          Comment

          • Jim Langston

            #6
            Re: making a struct array NULL?

            "djm" <djmlog103@gmai l.comwrote in message
            news:1192521446 .417753.109310@ e9g2000prf.goog legroups.com...
            On Oct 16, 12:40 pm, "Jim Langston" <tazmas...@rock etmail.comwrote :
            >"djm" <djmlog...@gmai l.comwrote in message
            >>
            >news:119251933 0.761691.111890 @k35g2000prh.go oglegroups.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::In depHTable()
            {
            >>
            word.clear();
            defList=NULL;
            >>
            }
            or something like
            this?
            >>
            IndepHTable::In depHTable(dicti onary 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 help 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.


            Comment

            • djm

              #7
              Re: making a struct array NULL?

              On Oct 16, 1:11 pm, "Jim Langston" <tazmas...@rock etmail.comwrote :
              "djm" <djmlog...@gmai l.comwrote in message
              >
              news:1192521446 .417753.109310@ e9g2000prf.goog legroups.com...
              >
              >
              >
              On Oct 16, 12:40 pm, "Jim Langston" <tazmas...@rock etmail.comwrote :
              "djm" <djmlog...@gmai l.comwrote in message
              >
              >news:119251933 0.761691.111890 @k35g2000prh.go oglegroups.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::In depHTable()
              {
              >
              word.clear();
              defList=NULL;
              >
              }
              or something like
              this?
              >
              IndepHTable::In depHTable(dicti onary 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 help 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 help. i got a pretty good knowledge about when
              to use a constructor. and in my case the default one does the the job.
              thanks!

              Comment

              Working...