001:返回什么才好呢
#include <iostream> using namespace std; class A { public: int val; A(int // Your Code Here n=123) { val = n; } A(A& a) { val = a.val; } A& GetObj() { return *this; } }; int main() { int m, n; A a; cout << a.val << endl; while (cin >> m >> n) { a.GetObj() = m; cout << a.val << endl; a.GetObj() = A(n); cout << a.val << endl; } return 0; }002:Big & Base 封闭类问题
#include <iostream> #include <string> using namespace std; class Base { public: int k; Base(int n) :k(n) { } }; class Big { public: int v; Base b; // Your Code Here Big(int n) :v(n),b(n){ } Big(Big& big):v(big.v),b(big.b){} }; int main() { int n; while (cin >> n) { Big a1(n); Big a2 = a1; cout << a1.v << "," << a1.b.k << endl; cout << a2.v << "," << a2.b.k << endl; } }003:编程填空:统计动物数量
#include <iostream> using namespace std; class Animal { public: static int number; Animal(){ number++; } virtual ~Animal() { number--; } }; class Dog:public Animal { public: static int number; Dog() { number++; } ~Dog() { number--; } }; class Cat:public Animal { public: static int number; Cat() { number++; } ~Cat() { number--; } }; int Animal::number=0,Dog::number=0,Cat::number=0; void print() { cout << Animal::number << " animals in the zoo, " << Dog::number << " of them are dogs, " << Cat::number << " of them are cats" << endl; } int main() { print(); Dog d1, d2; Cat c1; print(); Dog* d3 = new Dog(); Animal* c2 = new Cat; Cat* c3 = new Cat; print(); delete c3; delete c2; delete d3; print(); }004:这个指针哪来的
#include <iostream> using namespace std; struct A { int v; A(int vv) :v(vv) { } // Your Code Here const A* getPointer() const{ return this; } }; int main() { const A a(10); const A* p = a.getPointer(); cout << p->v << endl; return 0; }005:WarCraft1