При выполнении заданий используйте структуры из списка в соответствии со списочным номером в группе (можете придумать свою нетривиальную структуру):
template <class T> void swap(T &a, T &b)
{ T c; c=b; b=a; a=c; }
int main()
{ int i=0, j=1; double x=0.0, y=1.0;
char *s1="Hi, I am the first string!", *s2="Hi, I am the second string!";
printf ("Up to an exchange: \n i=%d j=%d\n x=%f y=%f\n s1=%s s2=%s\n",
i, j, x, y, s1, s2) ;
swap(i,j); swap(x,y); swap(s1,s2) ;
printf ("after an exchange: \n i=%d j=%d\n x=%f y=%f \n s1=%s s2=%s \n",
i, j, x, y, s1, s2) ;
system("PAUSE");
return 0;
}
int main(int argc, char *argv[])
{
String str1, str2, str3 ;
strcpy(str1.s, "1111111111111111 - "); str1.str_len=strlen(str1.s) ;
strcpy(str2.s, "2222222222222222!"); str2.str_len=strlen(str2.s) ;
printf ("str1.str_len=%d, str1.s =%s\n",
str1.str_len, str1.s);
printf ("str2.str_len=%d, str2.s =%s\n",
str2.str_len, str2.s);
str3=str1+str2;
printf ("str3.str_len=%d, str3.s=%s\n",
str3.str_len, str3.s);
system("PAUSE");
return 0;
}
class MyClass 1; // Предварительное объявление класса.
class MyClass
{ int j ;
friend void IncJ (MyClass &);
friend MyClass 1; };
class MyClass1
{ int j;
public:
void MakeJEqual( MyClass &);
}
void IncJ ( MyClass & obj )
{ obj . j ++; }
void MyClass1::MakeJEqual (MyClass &obj )
{j = obj . j ; }
int main()
{ MyClass obj;
MyClass1 obj1;
IncJ ( obj );
obj 1. MakeJEqual ( obj );}
Добавьте следующие функции в класс:
class Vector
{ int X, Y;
friend Vector& operator--(Vector&);
friend Vector operator-(const Vector&, const Vector&);
public:
void Assign(int x, int y) {X=x; Y=y;}
Vector operator++();
Vector operator++(int);
Vector operator+(const Vector&) const;
void print() const
{printf ("Coordinates X=%d, Y=%d\n", X, Y) ; } };
Vector Vector::operator++()
{X++; Y++; return *this; }
Vector Vector::operator++(int)
{ Vector vec_tmp=*this ;
X++; Y++; return vec_tmp ;}
Vector Vector::operator+(const Vector& vec ) const
{ Vector vec_tmp=*this; // сложить...
vec_tmp.X+=vec.X; vec_tmp.Y+=vec.Y;
return vec_tmp; }
Vector& operator--(Vector& vec)
{vec.X--; vec.Y --; return vec }
Vector operator-(const Vector& vecl, const Vector& vec2)
{ Vector vec_tmp=vecl; vec_tmp.X-=vec2.X;
vec_tmp.Y-=vec2.Y; return vec_tmp; }
const int NUMBER_OF_VECTORS=5;int main( )
{ Vector v_array [NUMBER_OF_VECTORS], v1;
for (int i=0; i<NUMBER_OF_VECTORS;i++)
{ v_array[i].Assign(i,i+1); printf (" value to a vector =%d\n", i);
v_array[i].print(); }
for (int i=0; i<NUMBER_OF_VECTORS;i++)
{ --v_array[i] ; printf (" Have deducted from a vector #%d an individual vector\n", i); v_array [ i ].print() ; }
v1.Assign(0, 0) ; printf ("The sum of all vectors of a massive:\n");
for (int i=0; i<NUMBER_OF_VECTORS;i++)
{ v1=v1+v_array[i] ; v1.print () ;
system("PAUSE"); return 0; }
int main()
{
Hold *ptr;
Hold mainObj ("This is a local object in main.");
mainObj.Show ();
trace (*);
ptr = new Hold("This is a dynamic object.");
ptr->Show();
delete ptr;
trace (*); Func() ; trace (*);system("PAUSE");
return EXIT_SUCCESS;
}