Constructor with parameter value checking : Constructor « Class « C++






Constructor with parameter value checking

   
#include <iostream>
#include <iomanip>
#include <string.h>
#include <stdlib.h>
using namespace std;
class Book 
{
  public: 
    char *title;
    char *author;
    float price;
    Book(char *title, char *author, char *publisher, float price);
    void show_title(void) { cout << title << '\n'; };
    float get_price(void) { return(price); };
    void show_book(void) 
    { 
      show_title(); 
      show_publisher(); 
    };
    void assign_publisher(char *name) { strcpy(publisher, name); };
  private:
    char *publisher;
    void show_publisher(void) { cout << publisher << '\n'; };
};

Book::Book(char *title, char *author, char *publisher, float price)
 {
   if ((Book::title = new char[256]) == 0)
     {
       cerr << "Error allocating memory\n";
       exit(0);
     }

   if ((Book::author = new char[64]) == 0)
     {
       cerr << "Error allocating memory\n";
       exit(0);
     }

   if ((Book::publisher = new char[128]) == 0)
     {
       cerr << "Error allocating memory\n";
       exit(0);
     }

   strcpy(Book::title, title);
   strcpy(Book::author, author);
   strcpy(Book::publisher, publisher);
   Book::price = price;
 }

int main(void)
 {
   Book tips("A", "B", "B",49.95);
   Book diary("C", "D", "D", 9.95);

   tips.show_book();
   diary.show_book();
 }
  
    
    
  








Related examples in the same category

1.Constructing and Destructing sequence for three level inheritance
2.Parameterized ConstructorsParameterized Constructors
3.string type constructorstring type constructor
4.Use constructor to init member variablesUse constructor to init member variables
5.Use Double value as the constructor parameterUse Double value as the constructor parameter
6.Constructor: different parameter typeConstructor: different parameter type
7.Use automatic conversions to assign new valuesUse automatic conversions to assign new values
8.Call constructor from base classCall constructor from base class
9.Constructor with 2 parametersConstructor with 2 parameters
10.Define constructor outside a class definition
11.overloading class constructors