已超过 503 天未更新,某些文章具有时效性,若有错误或已失效,请反馈到greenhat2333@gamil.com
虚函数与继承,转换函数
虚函数与继承
1 2 3 4 5 6 7 8
| class shape { public: virtual void draw() const = 0; virtual void error(const std::string& msg); int objectID() const; }
|


转换函数
情况1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| class Fraction { public: Fraction(int num, int den = 1) : m_numerator(num), m_denominator(den) { } operator double() const { return (double)(m_numerator / m_denominator); } private: int m_numerator; int m_denominator; };
Fraction f(3, 5); double d = 4 + f;
|
情况2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| class Fraction { public: Fraction(int num, int den = 1) : m_numerator(num), m_denominator(den) { }
Fraction operator+ (const Fraction& f) { return Fraction(...); } private: int m_numerator; int m_denominator; };
Fraction f(3, 5); Fraction d2 = f + 4;
|
情况3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Fraction { public: Fraction(int num, int den = 1) : m_numerator(num), m_denominator(den) { } operator double() const { return (double)(m_numerator / m_denominator); } Fraction operator+ (const Fraction& f) { return Fraction(...); } private: int m_numerator; int m_denominator; };
Fraction f(3, 5); Fraction d = f + 4;
|
情况4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| class Fraction { public: explicit Fraction(int num, int den = 1) : m_numerator(num), m_denominator(den) { } operator double() const { return (double)(m_numerator / m_denominator); } Fraction operator+ (const Fraction& f) { return Fraction(...); } private: int m_numerator; int m_denominator; };
Fraction f(3, 5); Fraction d = f + 4;
|