数组(一)
指向数组的指针和指针数组
考虑下面三个声明的含义:
指针和数组名
下例演示在自由存储区中声明和使用数组
考虑下面三个声明的含义:
Cat FamilyOne[500];
Cat* FamilyTow[500];
Cat* FamilyThree = new Cat[500];
Cat* FamilyTow[500];
Cat* FamilyThree = new Cat[500];
指针和数组名
下例演示在自由存储区中声明和使用数组
#include <iostream>
using namespace std;
class CAT
{
public:
CAT() { itsAge = 1; itsWeight = 5; }
~CAT();
int GetAge() const { return itsAge; }
void SetAge(int age) { itsAge = age; }
int GetWeight() const { return itsWeight; }
private:
int itsAge;
int itsWeight;
};
CAT::~CAT() {
// cout << "Destructor called! \n";
}
int main(int argc, char *argv[])
{
CAT* Family = new CAT[500];
int i;
CAT* pCat;
for (i = 0; i < 500; i++) {
pCat = new CAT;
pCat->SetAge(2 * i + 1);
Family[i] = *pCat;
delete pCat;
}
for (i = 0; i < 500; i++) {
cout << "Cat #" << i + 1 << " : " << Family[i].GetAge() << endl;
}
delete [] Family;
return 0;
}
using namespace std;
class CAT
{
public:
CAT() { itsAge = 1; itsWeight = 5; }
~CAT();
int GetAge() const { return itsAge; }
void SetAge(int age) { itsAge = age; }
int GetWeight() const { return itsWeight; }
private:
int itsAge;
int itsWeight;
};
CAT::~CAT() {
// cout << "Destructor called! \n";
}
int main(int argc, char *argv[])
{
CAT* Family = new CAT[500];
int i;
CAT* pCat;
for (i = 0; i < 500; i++) {
pCat = new CAT;
pCat->SetAge(2 * i + 1);
Family[i] = *pCat;
delete pCat;
}
for (i = 0; i < 500; i++) {
cout << "Cat #" << i + 1 << " : " << Family[i].GetAge() << endl;
}
delete [] Family;
return 0;
}