Assign one structure to another structure
#include <iostream>
using std::cout;
using std::endl;
struct Box {
double length;
double width;
double height;
};
int main() {
Box firstBox = { 80.0, 50.0, 40.0 };
cout << firstBox.length
<< firstBox.width
<< firstBox.height
<< endl;
Box secondBox = firstBox;
secondBox.length *= 1.1;
secondBox.width *= 1.1;
secondBox.height *= 1.1;
cout << secondBox.length
<< secondBox.width
<< secondBox.height
<< endl;
return 0;
}
805040
885544
const structure parameter
#include <iostream.h>
struct Time
{
int hh,mm,ss;
};
void Disp1(struct Time t);
void Disp2(const Time & t);
int main()
{
Time t1,t2,*p;
t1.hh=10;
t1.mm=30;
t1.ss=0;
t2=t1;
t2.hh++;
p = &t2;
cout << "The t2 time is " << p->hh << ":" << t2.mm << ":"<< t1.ss << endl;
Disp1(t2);
Disp2(t2);
return 0;
}
void Disp1(struct Time t)
{
cout << "The time is " << t.hh <<":" << t.mm << ":"<< t.ss << endl;
}
void Disp2(const Time & t)
{
cout << "The time is " << t.hh <<":" << t.mm << ":"<< t.ss << endl;
}
The t2 time is 11:30:0
The time is 11:30:0
The time is 11:30:0
Define structure to record time
#include <iostream.h>
struct Time
{
int hh,mm,ss;
};
int main()
{
Time t1,t2,*p;
t1.hh=10;
t1.mm=30;
t1.ss=0; //10:30:0
t2=t1;
t2.hh++; //11:30:0
p = &t2;
cout << "The t2 time is " << p->hh << ":" << t2.mm << ":"<< t1.ss << endl;
return 0;
}
The t2 time is 11:30:0
structure composition
#include <iostream>
using std::cout;
using std::endl;
#include <iostream>
struct Name {
char firstname[80];
char surname[80];
void show();
};
struct Date {
int day;
int month;
int year;
void show();
};
struct Phone {
int areacode;
int number;
void show();
};
struct Person {
Name name;
Date birthdate;
Phone number;
void show();
int age(Date& date);
};
void Name::show() {
std::cout << firstname << " " << surname << std::endl;
}
void Date::show() {
std::cout << month << "/" << day << "/" << year << std::endl;
}
void Phone::show() {
std::cout << areacode << " " << number << std::endl;
}
void Person::show() {
std::cout << std::endl;
name.show();
std::cout << "Brithday: ";
birthdate.show();
std::cout << "phone: ";
number.show();
}
int Person::age(Date& date) {
if(date.year <= birthdate.year)
return 0;
int years = date.year - birthdate.year;
if((date.month>birthdate.month) || (date.month == birthdate.month && date.day>= birthdate.day))
return years;
else
return --years;
}
int main() {
Person her = {{ "L", "G" }, // Initializes Name member
{1, 4, 1976 }, // Initializes Date member
{999,5551234} // Initializes Phone member
};
Person actress;
actress = her;
her.show();
Date today = { 4, 4, 2007 };
cout << endl << "Today is ";
today.show();
cout << endl;
cout << "Today " << actress.name.firstname << " is "
<< actress.age(today) << " years old."
<< endl;
return 0;
}
L G
Brithday: 4/1/1976
phone: 999 5551234
Today is 4/4/2007
Today L is 31 years old.
Use cin to read data for a structure
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
struct student
{
int num;
char name[20];
float score;
};
struct student stu[4];
struct student *p;
int i,temp;
float max;
for(i=0;i<=4;i++)
cin>>stu[i].num>>stu[i].name>>stu[i].score;
for(max=stu[0].score,i=1;i<4;i++){
if(stu[i].score>max);
{
max=stu[i].score;temp=i;
}
}
p=stu+temp;
cout<<"maxmum score:";
cout<<"NO.:"<<p->num<<"NAME:"<<p->name<<"SCORE:"<<p->score<<"\n";
}
maxmum score:NO.:^CTerminate batch job (Y/N)? n
Use memcpy to duplicate structures
#include <memory>
#include <iostream>
using namespace std;
struct mystruct
{
int i;
int x;
int y;
};
int main()
{
mystruct source,destination;
source.i = 1;
source.x = 2;
source.y = 3;
memcpy(&destination,&source,sizeof(source));
cout << destination.i << endl;
cout << destination.x << endl;
cout << destination.y << endl;
return 0;
}
1
2
3
Use the keyword struct to illustrate a primitive form of class
#include <iostream>
#include <math.h>
using namespace std;
struct math_operations {
double data_value;
void set_value(double ang) {
data_value=ang;
}
double get_square(void) {
double answer;
answer=data_value*data_value;
return (answer);
}
double get_square_root(void) {
double answer;
answer=sqrt(data_value);
return (answer);
}
} math;
int main( )
{
math.set_value(35.63);
cout << "The square of the number is: "
<< math.get_square( ) << endl;
cout << "The square root of the number is: "
<< math.get_square_root( ) << endl;
return (0);
}
Using pointers to structure objects: delete the point
#include <iostream>
using std::cout;
using std::endl;
struct Box {
double length;
double width;
double height;
double volume();
};
double Box::volume() {
return length * width * height;
}
int main() {
Box aBox = { 1, 2, 3 };
Box* pBox = &aBox;
Box* pBox2 = new Box;
pBox2->height = pBox->height+5.0;
pBox2->length = pBox->length+3.0;
pBox2->width = pBox->width+2.0;
cout << "Volume of Box in the free store is " << pBox2->volume() << endl;
delete pBox;
delete pBox2;
return 0;
}
Volume of Box in the free store is 128