, . , , , .
#include<iostream.h>// 40
class Sample{
int a;
public:
Sample(int n){
a=n;
cout<<constructor\n;}
int getA(){return a;}
};
int main() {
Sample ob[4]={1,2,3,4};
Sample *pob=ob;
int i;
for(i=0;i<4;i++) cout<<ob[i].getA ()<< ;
cout<<\n;
cout<<pob->getA ();
return 0;
}
1, 2, 3, 4, . 1 pob . :
Sample ob[4]={Sample(1),Sample(2),Sample(3),Sample(4)};
, . :
Sample ob[4]= {Sample(1,2),Sample(3,4),Sample(5,6),Sample(7,8)};
new, . delete, . :
#include <iostream.h>// 41
class Samp {
int i, j;
public:
Samp(){cout<<2\n;}
Samp(int a,int b){i=a;j=b;cout<<1\n;}
void setIJ(int a, int b) { i = a; j = b; }
~Samp() { cout << "...\n"; }
int get() { return i*j; }
};
int main() {
Samp *p01;
int i;
p01 = new Samp(6,5);
Samp *p02;
p02 = new Samp[3];
if(!p01||!p02) {cout << " \n"; return 1;}
for(i=0; i<3; i++) {
p02[i].setIJ(i, i);
cout << "02[" << i << "]="<<p02[i].get()<<\n;
}
cout << p01->get() << "\n";
delete p01;
delete [ ] p02;
return 0;
}
:
1
2
2
2
02[0]=0
p02[1]=1
p02[2]=4
...
...
...
...
4 : 01.
. . , . , . , .
- , . , . :
//
|
|
#include <iostream.h>// 42
#include <stdlib.h>
class Array {
int isize, jsize;
int *p;
public:
Array(int i, int j) {
p = new int [ i * j ];
if(!p) {
cout << " \n";
exit(1); }
isize = i;
jsize = j;
}
int &put(int i, int j);
int get(int i, int j);
};
/* , */
int &Array::put(int i, int j) {
if(i<0 || i>=isize || j<0 || j>=jsize) {
cout << ", !!!\n";
exit(1);
}
return p[i * jsize + j]; // p[ i ] [ j ]
}
//
int Array::get(int i, int j) {
if(i<0 || i>=isize || j<0 || j>=jsize) {
cout << ", !!!\n";
exit(1);
}
return p[i * jsize + j]; //
}
int main() {
Array a(2, 3);
int i, j;
for(i=0; i<2; i++)
for(j=0; j<3; j++)
a.put(i, j) = i + j;
for(i=0; i<2; i++)
for(j=0; j<3; j++)
cout << a.get(i, j) << ' ';
//
a.put(10, 10);
return 0;
}