new .
. . , new , :
k=3;
int *p[]=new int[k][5]; // cannot convert from 'int (*)[5]' to 'int *[]'
int (*p)[5]=new int[k][5]; //
. .
int *a = new int (10234);
.
, (-
, ).
,
, .
class matr
{ int a;
float b;
public:
matr(){}; //
matr(int i,float j): a(i),b(j) {}
~matr(){};
};
int main()
{ matr mt(3,.5);
matr *p1=new matr[2]; // 1 − 2
matr *p2=new matr[2] (2,3.4); // ,
matr *p3=new matr (2,3.4); // 3
}
class A
{ int i; // -
public:
A(){} //
~A(){} //
};
int main()
{ A *a,*b; //
float *c,*d; // float
a=new A; //
b=new A[3]; //
c=new float; // float
d=new float[4]; // float
delete a; // ,
delete [] b; // ,
delete c; // float
delete [] d; } // float
(friend)
(
)
() . -
, , -
(). , public-
.
,
. -
()
. ++ -
|
|
.
++ friend.
friend- , :
- - ;
- (private, public protected).
,
.
#include <iostream>
using namespace std;
class kls
{ int i,j;
public:
kls(int i,int J): i(I),j(J) {} //
int max() {return i>j? i: j;} // - kls
friend double fun(int, kls&); // friend- fun
};
double fun(int i, kls &x) //
{ return (double)i/x.i;
}
main()
{ kls obj(2,3);
cout << obj.max() << endl;
out << fun(3,obj) << endl;
return 1;
}
.
(++) : -
, . & _ = .
.
. -
. -,
, . . -, , , .
,
,
. ++ -
. -
&.
void fun1(int,int);
void fun2(int &,int &);
int main()
{ int i=1,j=2; // i j
cout << "\n main() i = "<<&i<<" j = "<<&j;
cout << "\n i = "<<i<<" j = "<<j;
fun1(i,j);
cout << "\n i = "<<i<<" j = "<<j;
fun2(i,j);
cout << "\n i = "<<i<<" j = "<<j;
}
void fun1(int i,int j)
{ cout << "\n fun1() i = "<<&i<<" j = "<<&j;
int a; // fun1 i j main()
a=i; i=j; j=a; // i j main()
} //
void fun2(int &i,int &j)
{ cout << "\n fun2() i = "<<&i<<" j = "<<&j;
int a; // i j
a=i; i=j; j=a; } // main() ( )
// i j
.
++
|
|
. -
, :
#include <iostream>
using namespace std;
int main()
{ int i=1;
int &j=i; // j ( ) i
cout << "\n i = "<<&i<<" j = "<<&j;
cout << "\n i = "<<i<<" j = "<<j;
j=5; //
cout << "\n i = "<<&i<<" j = "<<&j;
cout << "\n i = "<<i<<" j = "<<j;
return 0;
}
:
i = 0x1 j = 0x2
i = 1 j = 1
i = 0x1 j = 0x2
i =5 j = 5
j, -
i. j
i.