C++/Class/Instance

Материал из C\C++ эксперт
Перейти к: навигация, поиск

class array and object method call

   
#include <iostream>
#include <iomanip>
#include <string.h>
using namespace std;
class Book 
{
  public: 
    void show_title(void) { cout << title << "\n"; };
    void show_book(void) { show_title(); show_publisher(); };
    void assign_members(char *, char *, char *, float);
  private:
    char title[256];
    char author[64];
    float price;
    char publisher[256];
    void show_publisher(void) { cout << publisher << "\n"; };
};

void Book::assign_members(char *title, char *author, char *publisher,float price)
{
   strcpy(Book::title, title);
   strcpy(Book::author, author);
   strcpy(Book::publisher, publisher);
   Book::price = price;
}

int main(void)
{
   Book Library[4];
   Library[0].assign_members("A", "B","C", 49.95);
   Library[1].assign_members("D", "E", "F", 54.95); 
   Library[2].assign_members("G", "H","I", 49.95);
   Library[3].assign_members("J", "K","L", 24.95);
 
   for (int i = 0; i < 4; i++)
     Library[i].show_book();
}


Construct object in an object array one by one

   
#include <iostream>
#include <iomanip>
#include <string.h>
using namespace std;
class Book 
{
  public: 
    void show_title(void) { cout << title << "\n"; };
    void show_book(void) 
    { 
      show_title();
      show_publisher();
    };
    Book(char *title, char *author, char *publisher, float price);
  private:
    char title[256];
    char author[64];
    float price;
    char publisher[256];
    void show_publisher(void) { cout << publisher << "\n"; };
};
Book::Book(char *title, char *author, char *publisher, float price)
 {
   strcpy(Book::title, title);
   strcpy(Book::author, author);
   strcpy(Book::publisher, publisher);
   Book::price = price;
   cout << "In constructor." << endl;
 }
int main(void)
 {
   Book *Library[4];
   int i;
   Library[0] = new Book("A", "B","C", 49.95);
   Library[1] = new Book("D", "E", "F", 54.95);
   Library[2] = new Book("G", "H","I", 49.95);
   Library[3] = new Book("K", "J","P", 29.95);
   for (i = 0; i < 4; i++)
     Library[i]->show_book();
 }


Declare the instance variable for a class

  
#include <iostream>
using namespace std;
class Power {
  double b;
  
  int e;
  
  double val;
public:
  Power(double base, int exp);
  
  double getPower() { 
     return val; 
  }
};
Power::Power(double base, int exp)
{
  b = base;
  e = exp;
  val = 1;
  if(exp == 0) 
     return;
  for( ; exp > 0; exp--) 
     val = val * b;
}
int main()
{
  Power x(4.0, 2), y(2.5, 1), z(5.7, 0);
  cout << x.getPower() << " ";
  cout << y.getPower() << " ";
  cout << z.getPower() << endl;
  return 0;
}


Loop through an object array and call its method

   
#include <iostream>
#include <iomanip>
#include <string.h>
using namespace std;
class Book 
{
  public: 
    void show_title(void) { cout << title << "\n"; };
    void show_book(void) 
    { 
      show_title();
      show_publisher();
    };
    Book(char *title, char *author, char *publisher, float price);
    ~Book(void) { cout << "Destroying the entry for " << title << endl; };
  private:
    char title[256];
    char author[64];
    float price;
    char publisher[256];
    void show_publisher(void) { cout << publisher << "\n"; };
};
Book::Book(char *title, char *author, char *publisher, float price)
{
   strcpy(Book::title, title);
   strcpy(Book::author, author);
   strcpy(Book::publisher, publisher);
   Book::price = price;
}
int main(void)
{
   Book *Library[4];
   int i = 0;
   Library[0] = new Book("A", "B","C", 49.95);
   Library[1] = new Book("D", "E", "F", 54.95);
   Library[2] = new Book("G", "H","I", 49.95);
   Library[3] = new Book("J", "K","P", 24.95);
   for (i = 0; i < 4; i++)
     Library[i]->show_book();
   for (i = 0; i < 4; i++)
     delete Library[i];
}