Newer
Older
// An example of programming using user defined types
// Here is the type definition, that is a declaration
// containing the type data layout and the operations
// needed to use the type in the correct way.
// The type is created using a class, that is a type that
// implement a separation between a public part, what every
// user can use, and a private part, what can be used only
// by object of the type itself.
// Here the modules, functions, needed to create an object in memory
// And operate on the data layout
ave & operator+=(int d){
rsum_+=d;
ncount_++;
double stemp=static_cast<double>(rsum_);
double ntemp=static_cast<double>(ncount_);
amean_=stemp/ntemp;
return *this;
}
double get_ave() const { return amean_;}
private:
// Here the list of data needed to describe
// the type.
int ncount_{0};
int rsum_{0};
double amean_{0.};
// Every C++ program must start executing a function called main.
// User's types have the same support of the base types
// Create an object with a state, i.e. data layout, and
// a behavior, i.e. the code needed to manage the data layout,
// connected somehow in memory.
ave a;
int indata{0};
std::cout <<"Enter values [Ctrl-D to finish]: " <<std::endl;
// The object oriented programming semantic is implemented in C++ using
// operators, that is symbols that represent an operation. Here std::cin and a
// are the "object"s to operate on ...
while(std::cin>>indata){
a+=indata;
}
// ... here the std::cout is the "object" to "use"
std::cout << "Average: " << a.get_ave() << std::endl;
return 0;
}