Put related variables together ..(rememberthatanArrayisacollectionofvariablesofsametype)The simpliestClass(ora C-structure) canbethought ofbeingacollectionof variablesof differenttypesstructureTemperaturedoubledegree;charscale;;
(remember that an Array is a collection of variables of same type) The simpliest Class (or a C-structure) can be thought of being a collection of variables of different types Put related variables together . structure Temperature { double degree; char scale; };
A first simple °class' orobject-oriented' solutionclass Temperature{public:doubledegree;Twomembervariables:degreeandscalechar scale;;a new(user-defined)type,acompositetype:Temperature!Remark:structureTemperatureInold C,this can be doneusingstructure'doubledegreechar scale;similarto“record'inPascal3;
A first simple ‘class’ or ‘object-oriented’ solution class Temperature { public: double degree; char scale; }; a new (user-defined) type, a composite type: Temperature! Two member variables: degree and scale In old C, this can be done using ‘structure’: structure Temperature { double degree; char scale; }; similar to ‘record’ in Pascal Remark:
The dot operator for (public) membersThemodifier‘public'meansthatthemembervariablescanbeaccessedfromtheobjects,e.gTemperature templ, temp2;templ.degree=54.0;templ.scale='Fl;temp2.degree=104.5;temp2.scale='c';AC++structisaclassinwhichallmembersarebydefaultpublic
temp1.degree=54.0; temp1.scale=‘F’; temp2.degree=104.5; temp2.scale=‘C’; The dot operator for (public) members Temperature temp1, temp2; The modifier ‘public’ means that the member variables can be accessed from the objects, e.g. A C++ struct is a class in which all members are by default public
Manipulation of the new type:Somebasicoperations:void print(Temperature temp) f1cout << "The temperature is degree<< temp.degree<<"with the scale"temp.scale << endl;double celsius(Temperature temp)double cel;if(temp.scale=-F')cel=(temp.degree-32.0)/1.8;else cel=temp.degree;return cel;double fahrenheit(Temperature temp)double fa;if(temp.scale=='c') fa= temp.degree *1.8+32.0;elsefa-temp.degree;return fa;
void print(Temperature temp) { cout << “The temperature is degree “ << temp.degree << “with the scale “ << temp.scale << endl; } double celsius(Temperature temp) { double cel; if (temp.scale==‘F’) cel=(temp.degree-32.0)/1.8; else cel=temp.degree; return cel; } double fahrenheit(Temperature temp) { double fa; if(temp.scale==‘C’) fa= temp.degree *1.8+32.0; else fa=temp.degree; return fa; } Some basic operations: Manipulation of the new type:
Anapplicationexample:Temperatureannualtemp[l2l;double annualAverageCelsius(Temperature arraytemp[l)doubleav=o.o;for(inti=0;i<l2;i++)av=av+celsius(arraytemp[il)return av;
An application example: double annualAverageCelsius(Temperature arraytemp[]) { double av=0.0; for (int i=0;i<12;i++) av=av+celsius(arraytemp[i]); return av; }; Temperature annualtemp[12];