How to write a simple class in C++?

后端 未结 4 587
夕颜
夕颜 2020-12-13 13:42

I have been reading a lot of tutorials on C++ class but they miss something that other tutorials include.

Can someone please show me how to write and use a very simp

4条回答
  •  清歌不尽
    2020-12-13 14:05

    Well documented example taken and explained better from Constructors and Destructors in C++:

    #include             // for cout and cin
    
    class Cat                      // begin declaration of the class
    {
      public:                      // begin public section
        Cat(int initialAge);       // constructor
        Cat(const Cat& copy_from); //copy constructor
        Cat& operator=(const Cat& copy_from); //copy assignment
        ~Cat();                    // destructor
    
        int GetAge() const;        // accessor function
        void SetAge(int age);      // accessor function
        void Meow();
     private:                      // begin private section
        int itsAge;                // member variable
        char * string;
    };
    
    // constructor of Cat,
    Cat::Cat(int initialAge)
    {
      itsAge = initialAge;
      string = new char[10]();
    }
    
    //copy constructor for making a new copy of a Cat
    Cat::Cat(const Cat& copy_from) {
       itsAge = copy_from.itsAge;
       string = new char[10]();
       std::copy(copy_from.string+0, copy_from.string+10, string);
    }
    
    //copy assignment for assigning a value from one Cat to another
    Cat& Cat::operator=(const Cat& copy_from) {
       itsAge = copy_from.itsAge;
       std::copy(copy_from.string+0, copy_from.string+10, string);
    }
    
    // destructor, just an example
    Cat::~Cat()
    {
        delete[] string;
    }
    
    // GetAge, Public accessor function
    // returns value of itsAge member
    int Cat::GetAge() const
    {
       return itsAge;
    }
    
    // Definition of SetAge, public
    // accessor function
     void Cat::SetAge(int age)
    {
       // set member variable its age 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()
    {
       cout << "Meow.\n";
    }
    
    // create a cat, set its age, have it
    // meow, tell us its age, then meow again.
    int main()
    {
      int Age;
      cout<<"How old is Frisky? ";
      cin>>Age;
      Cat Frisky(Age);
      Frisky.Meow();
      cout << "Frisky is a cat who is " ;
      cout << Frisky.GetAge() << " years old.\n";
      Frisky.Meow();
      Age++;
      Frisky.SetAge(Age);
      cout << "Now Frisky is " ;
      cout << Frisky.GetAge() << " years old.\n";
      return 0;
    }
    

提交回复
热议问题