81-85.c++个人练习。

1.

class Cat {
public:
	Cat(int age) :
		itsAge(age) {
		numOfCats++;
	}
	virtual ~Cat() {
		numOfCats--;
	}
	virtual int getAge() {
		return itsAge;
	}
	virtual void setAge(int age) {
		itsAge = age;
	}
	static int getNumOfCats() {
		return numOfCats;
	}
private:
	int itsAge;
	static int numOfCats;
};

int Cat::numOfCats = 0;

void telepathicFunction();

int main() {
	const int maxCats = 5;
	Cat *catHouse[maxCats];
	int i;
	for (i = 0; i < maxCats; i++) {
		catHouse[i] = new Cat(i);
		telepathicFunction();
	}

	for (i = 0; i < maxCats; i++) {
		delete catHouse[i];
		telepathicFunction();
	}
	return 0;
}

void telepathicFunction() {
	cout << "There are " << Cat::getNumOfCats() << " cats alive!\n";
}

2.

#include "my_x_y_z.h"
int main() 
{
	X x;
	Z z;
	z.f(&x);
	return 0;
}

#ifndef  MY_X_Y_Z_H

class X; 
class Y {
public:
	void g(X*);
};

class X 
{ 
private:
	int i;
public:
	X(){i=0;}
	friend void h(X*);
	friend void Y::g(X*);
	friend class Z;
};

void h(X* x) { x->i =+10; }

void Y::g(X* x) { x->i ++; }

class Z {
public:
	void f(X* x) { x->i += 5; }
};

#endif		//  MY_X_Y_Z_H


猜你喜欢

转载自blog.csdn.net/xiaotsama/article/details/72984614
81
81!
85