Thread: Just learning constructors

  1. #1
    left crog... back when? incognito's Avatar
    Join Date
    Oct 2001
    Posts
    1,427

    Just learning constructors

    // Demonstrates declaration of constructors and
    // destructor for the Cat class
    // Programmer created default constructor

    #include <iostream> // for cout

    class Cat // begin declaration of the class
    {
    public: // begin public section
    Cat(int initialAge); // constructor
    ~Cat(); // destructor
    int GetAge(); // accessor function
    void SetAge(int age); // accessor function
    void Meow();
    private: // begin private section
    int itsAge; // member variable
    };

    // constructor of Cat,
    Cat::Cat(int initialAge)
    {
    itsAge = initialAge;
    }

    Cat::~Cat() // destructor, takes no action
    {
    }

    // GetAge, Public accessor function
    // returns value of itsAge member
    int Cat::GetAge()
    {
    return itsAge;
    }

    // Definition of SetAge, public
    // accessor function

    void Cat::SetAge(int age)
    {
    // set member variable itsAge to
    // value passed in by parameter age
    itsAge = age;
    }

    // definition of Meow method
    // returns: void
    // parameters: None
    // action: Prints "meow" to screen
    void Cat::Meow()
    {
    std::cout << "Meow.\n";
    }

    // create a cat, set its age, have it
    // meow, tell us its age, then meow again.
    int main()
    {
    Cat Frisky(5);
    Frisky.Meow();
    std::cout << "Frisky is a cat who is " ;
    std::cout << Frisky.GetAge() << " years old.\n";
    Frisky.Meow();
    Frisky.SetAge(7);
    std::cout << "Now Frisky is " ;
    std::cout << Frisky.GetAge() << " years old.\n";
    return 0;
    }
    /*#########################################*/

    Ok, I am now just being introduced to constructors and here "Cat Frisky(5)" is the Frisky constructor in the main(), ok so this sets the age, now I have a question, if I wanted to make a constructor to set Frisky's hight for example how would I go about it? I might not be making any sense to you here. I mean set the hight with a constructor in this same program, is that possible and if so, how does it work? Thanks in advance.
    There are some real morons in this world please do not become one of them, do not become a victim of moronitis. PROGRAMMING IS THE FUTURE...THE FUTURE IS NOW!!!!!!!!!

    "...The only real game I thank in the world is baseball..." --Babe Ruth

    "Life is beautiful"-Don Corleone right before he died.

    "The expert on anything was once a beginner" -Baseball poster I own.


    Left cprog on 1-3-2005. Don't know when I am coming back. Thanks to those who helped me over the years.

  2. #2
    geek SilentStrike's Avatar
    Join Date
    Aug 2001
    Location
    NJ
    Posts
    1,141
    Make the Cat constructor take a second argument, the cat's height, and then build Frisky like this

    Cat Frisky(5,20);
    Prove you can code in C++ or C# at TopCoder, referrer rrenaud
    Read my livejournal

  3. #3
    left crog... back when? incognito's Avatar
    Join Date
    Oct 2001
    Posts
    1,427

    Thanks

    Thanks for your help I got. Thank you
    There are some real morons in this world please do not become one of them, do not become a victim of moronitis. PROGRAMMING IS THE FUTURE...THE FUTURE IS NOW!!!!!!!!!

    "...The only real game I thank in the world is baseball..." --Babe Ruth

    "Life is beautiful"-Don Corleone right before he died.

    "The expert on anything was once a beginner" -Baseball poster I own.


    Left cprog on 1-3-2005. Don't know when I am coming back. Thanks to those who helped me over the years.

  4. #4
    left crog... back when? incognito's Avatar
    Join Date
    Oct 2001
    Posts
    1,427

    parameters

    what's the limit of parameter to a function?
    There are some real morons in this world please do not become one of them, do not become a victim of moronitis. PROGRAMMING IS THE FUTURE...THE FUTURE IS NOW!!!!!!!!!

    "...The only real game I thank in the world is baseball..." --Babe Ruth

    "Life is beautiful"-Don Corleone right before he died.

    "The expert on anything was once a beginner" -Baseball poster I own.


    Left cprog on 1-3-2005. Don't know when I am coming back. Thanks to those who helped me over the years.

  5. #5
    Registered User cody's Avatar
    Join Date
    Sep 2001
    Posts
    86
    I think that would depend on your compiler, but if you have a function with more than...hmm...dunno...let's say 10 parameters you might should think about a way to simplify it a little bit

    aloa
    cody
    #include "reallife.h"

  6. #6
    Registered User
    Join Date
    Aug 2001
    Posts
    154

    Re: Just learning constructors

    Originally posted by elchulo2002
    // Demonstrates declaration of constructors and
    // destructor for the Cat class
    // Programmer created default constructor

    #include <iostream> // for cout

    class Cat // begin declaration of the class
    {
    public: // begin public section
    Cat(int initialAge); // constructor
    ~Cat(); // destructor
    int GetAge(); // accessor function
    void SetAge(int age); // accessor function
    void Meow();
    private: // begin private section
    int itsAge; // member variable
    };

    Couple other things. In the constructor declaration above, you don't need to name initialAge, just the type (int). You can name it, but the compiler ignores it. You do have to name it in the function definition.
    You can have the same declaration initialize a default value - Cat(int = 1) - so that you could just declare a Cat object in your program w/o passing it an age if you want. You can only have one constructor with default values in a class.
    You can have more than one constructor. For example, you could have your original constructor and one like - Cat(int, int) - that would automatically be called when you wanted a Cat object with age and height.
    You might want some kind of checking mechanism to make sure invalid age values aren't created. This could be done in the constructor or in the setAge function called from the constructor - if (initialAge < 25 || initialAge < 0 ) initialAge = initialAge; else initialAge = 1; -

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Machine Learning with Lego Mindstorms
    By DavidP in forum A Brief History of Cprogramming.com
    Replies: 14
    Last Post: 01-30-2009, 02:34 PM
  2. Need Help On a Simple Bank Program
    By oobootsy1 in forum C# Programming
    Replies: 9
    Last Post: 08-08-2005, 10:51 AM
  3. Fun Learning a New Language
    By UnregdRegd in forum A Brief History of Cprogramming.com
    Replies: 16
    Last Post: 09-30-2003, 10:03 PM
  4. Learning Rate Of C++
    By Krak in forum C++ Programming
    Replies: 27
    Last Post: 01-29-2003, 01:53 PM
  5. Copy constructors and private constructors
    By Eibro in forum C++ Programming
    Replies: 5
    Last Post: 11-24-2002, 10:16 AM