From 0a9f2fe0def2568e929c5e1962094f909cd5400e Mon Sep 17 00:00:00 2001 From: sinoding Date: Mon, 6 Jun 2011 19:57:11 +0800 Subject: [PATCH] commit test --- array.cc (Case Conflict 1) | 19 ----- ch22/IntegerMapping | Bin 0 -> 10981 bytes ch22/IntegerMapping.cc | 3 +- ch23/reference_virtual.cc | 4 +- ch25/Internal_vector | Bin 0 -> 13285 bytes ch25/Internal_vector.cc | 140 +++++++++++++++++++++++++++++++++++++ ch26/e1 | Bin 0 -> 33521 bytes ch26/e1.cc | 13 ++++ ch26/e2 | Bin 0 -> 36172 bytes ch26/e2.cc | 25 +++++++ ch26/e3.cc | 25 +++++++ 11 files changed, 207 insertions(+), 22 deletions(-) delete mode 100644 array.cc (Case Conflict 1) create mode 100755 ch22/IntegerMapping create mode 100755 ch25/Internal_vector create mode 100644 ch25/Internal_vector.cc create mode 100755 ch26/e1 create mode 100644 ch26/e1.cc create mode 100755 ch26/e2 create mode 100644 ch26/e2.cc create mode 100644 ch26/e3.cc diff --git a/array.cc (Case Conflict 1) b/array.cc (Case Conflict 1) deleted file mode 100644 index 95db831..0000000 --- a/array.cc (Case Conflict 1) +++ /dev/null @@ -1,19 +0,0 @@ -class Array { - int *data; - int size; -public: - Array(int s) { - size = s; - data = new int[size]; - } - ~Array() { - delete[] data; - } - -}; - -int main(int argc, char **argv) { - Array a1(10); - Array a2 = a1; - return 0; -} diff --git a/ch22/IntegerMapping b/ch22/IntegerMapping new file mode 100755 index 0000000000000000000000000000000000000000..97e28053064bce0281d0226a378b9d632a1093c6 GIT binary patch literal 10981 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 AcmMzZ literal 0 HcmV?d00001 diff --git a/ch22/IntegerMapping.cc b/ch22/IntegerMapping.cc index c9bd6e4..1d07ed7 100644 --- a/ch22/IntegerMapping.cc +++ b/ch22/IntegerMapping.cc @@ -27,7 +27,7 @@ class Negate : public IntegerMapping { class Compose : public IntegerMapping { public: - Compose(IntegerMapping &n1, IntegerMapping &n2) : m1(&n1), m2(&n2) {} + Compose(IntegerMapping *n1, IntegerMapping *n2) : m1(n1), m2(n2) {} int maps(int x) const { return m1->maps(m2->maps(x)); } @@ -47,3 +47,4 @@ int main(int argc, char **argv) { cout << weird(&c, 15, 16) << endl; return 0; } + diff --git a/ch23/reference_virtual.cc b/ch23/reference_virtual.cc index 244efb3..57155e6 100644 --- a/ch23/reference_virtual.cc +++ b/ch23/reference_virtual.cc @@ -22,7 +22,7 @@ class SecondClass : public FirstClass { void print1() { cout << "SecondClass::print1()" << endl; } - virtual void print2() { + void print2() { cout << "SecondClass::print2()" << endl; } }; @@ -32,7 +32,7 @@ class ThirdClass : public SecondClass { void print1() { cout << "ThirdClass::print1()" << endl; } - virtual void print2() { + void print2() { cout << "ThirdClass::print2()" << endl; } }; diff --git a/ch25/Internal_vector b/ch25/Internal_vector new file mode 100755 index 0000000000000000000000000000000000000000..242e9b2f1f0d2fb99c61983d58c0c0564f896eee GIT binary patch literal 13285 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 literal 0 HcmV?d00001 diff --git a/ch25/Internal_vector.cc b/ch25/Internal_vector.cc new file mode 100644 index 0000000..1575203 --- /dev/null +++ b/ch25/Internal_vector.cc @@ -0,0 +1,140 @@ +#include + +using namespace std; + +class InternalVector { + public: + double *data; + int size; + int nbref; + + InternalVector(double *d, int s) : data(new double[s]), + size(s), nbref(0) { + cout << " + Expensive allocation and copy" << endl; + for (int k = 0; k < s; k++) { + data[k] = d[k]; + } + } + + ~InternalVector() { + cout << " + Destruction" << endl; + delete[] data; + } + + void release() { + if (--nbref == 0) { + delete this; + } + } + + InternalVector *grab() { + nbref++; + return this; + } + + InternalVector *own() { + if (nbref == 1) { + return this; + } else { + nbref--; + InternalVector *result = new InternalVector(data, size); + result->nbref++; + return result; + } + } +}; + +class Vector { + public: + Vector(); + Vector(double *d, int s); + Vector(const Vector &v); + ~Vector(); + Vector & operator = (const Vector &v); + inline double get(int k) const; + inline void set(int k, double v); + inline int size() const; + private: + InternalVector *internal; +}; + + +Vector::Vector() { + cout << " * Creating empty Vector" << endl; + internal = 0; +} + +Vector::Vector(double *d, int s) { + cout << " * Creating Vector" << endl; + internal = new InternalVector(d, s); + internal->grab(); +} + +Vector::Vector(const Vector &v) { + cout << " * Coping Vector" << endl; + if (v.internal) { + internal = v.internal->grab(); + } else { + internal = 0; + } +} + +Vector::~Vector() { + cout << " * Destorying Vector" << endl; + if (internal) { + internal->release(); + } +} + +Vector & Vector::operator = (const Vector &v) { + cout << " * Assigning Vector from Vector" << endl; + if (this != &v) { + if (internal) { + internal->release(); + internal = v.internal->grab(); + } + } +} + +inline double Vector::get(int k) const { + return internal->data[k]; +} + +inline void Vector::set(int k, double v) { + if (v != internal->data[k]) { + internal = internal->own(); + internal->data[k] = v; + } +} + +inline int Vector::size() const { + return internal->size; +} + +double sum(Vector v) { + cout << "Entering sum()" << endl; + double s = 0; + for (int i = 0; i < v.size(); i++) { + s += v.get(i); + } + cout << "Leaving sum()" << endl; + return s; +} + +int main(int argc, char **argv) { + cout << "Doing double a[] = {1, 2, 3, 4, 5, 6, 7};" << endl; + double a[] = {1, 2, 3, 4, 5, 6, 7}; + cout << "DOING Vector v(a, sizeof(a)/sizeof(double));" << endl; + Vector v(a, sizeof(a)/sizeof(double)); + cout << "DING Vector w;" << endl; + Vector w; + cout << "DOING w = v;" << endl; + w = v; + cout << "DOING cout << sum(v) << \"\\n\";" << endl; + cout << sum(v) << endl; + cout << "DOING w.set(3, 2.1);" << endl; + w.set(3, 2.1); + cout << "FINISHED" << endl; + + return 0; +} diff --git a/ch26/e1 b/ch26/e1 new file mode 100755 index 0000000000000000000000000000000000000000..b8f9467b3b199e282a11368f49b165edc78ef3ba GIT binary patch literal 33521 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 +#include + +using namespace std; + +int main(int argc, char **argv) { + string s = "What a beautiful weather!!!"; + string t; + t = s; + std::cout << t << std::endl; + + return 0; +} diff --git a/ch26/e2 b/ch26/e2 new file mode 100755 index 0000000000000000000000000000000000000000..9ae71e47dc2905e8013db66bbf619a19bf234156 GIT binary patch literal 36172 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

Pk;;Rqin-+>uF!TT@fq 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 literal 0 HcmV?d00001 diff --git a/ch26/e2.cc b/ch26/e2.cc new file mode 100644 index 0000000..8248ab9 --- /dev/null +++ b/ch26/e2.cc @@ -0,0 +1,25 @@ +#include +#include + +using namespace std; + +void something(string s) { + cout << "s = [" << s << "]" << endl; + s[0] = 'X'; + cout << "s = [" << s << "]" << endl; +} + +int main(int argc, char **argv) { + string s1 = "University"; + string s2 = " of "; + string s3(" Chicago"); + string s4; + s4 = s1 + s2; + s4 += s3; + cout << s4 << endl; + s1 = s4.substr(11, 2); + cout << s1 << endl; + something(s1); + cout << s1 << endl; + return 0; +} diff --git a/ch26/e3.cc b/ch26/e3.cc new file mode 100644 index 0000000..14e999d --- /dev/null +++ b/ch26/e3.cc @@ -0,0 +1,25 @@ +class IntIterator { + public: + virtual bool hasNext() = 0; + virtual int next() = 0; +}; + +class SmallIterator : public IntIterator { + public: + SmallIterator() : n(0) {} + SmallIterator(int aa) : a(aa), n(1) {} + SmallIterator(int bb, int aa) :a(aa), b(bb), n(2) {} + bool hasNext() { + return n > 0; + } + int next() { + n--; + if (n == 1) { + return b; + } else if (n == 0) { + return a; + } + } + private: + int a, b, n; +};