國立暨南國際大學 100 學年度第二學期小考試卷                   (考試時間: 8:10-8:20)
科目名稱:資訊系統 與網路導論 開課系所:資訊工程 學系 任課教師
吳坤熹
系所別:
年級:
學號:
姓名:
考試日期
2012.3.9
  1. (10%) Determine whether the following code has syntax errors or not.  If it is correct, predict its output.  If it is incorrect, point out the mistake(s).
    // Ex7_12.cpp
    // Using a static data member in a class
    #include <iostream>
    using std::cout;
    using std::endl;

    class CBox             // Class definition at global scope
    {
      public:
        static int objectCount;    // Count of objects in existence

        // Constructor definition
        explicit CBox(double lv, double bv = 1.0, double hv = 1.0)
        {    
          m_Length = lv;           // Set values of
          m_Width = bv;            // data members
          m_Height = hv;
          objectCount = 0;
        }

        CBox()                     // Default constructor
        {    
          m_Length = m_Width = m_Height = 1.0;
          objectCount++;
        } 

      private:
        double m_Length;           // Length of a box in inches
        double m_Width;            // Width of a box in inches
        double m_Height;           // Height of a box in inches
    };

    int CBox::objectCount = 2;    
    // Initialize static member of CBox class

    int main()
    {
      CBox boxes[5];       // Array of CBox objects declared
      cout << "Number of objects (through class) = "
           << CBox::objectCount;

      CBox cigar(8.0, 5.0, 1.0);   // Declare cigar box
      cout << endl
           << "Number of objects (through object) = "
           << boxes[2].objectCount;

      cout << endl;
      return 0;
    }


  2. (10%) Determine whether the following code has syntax errors or not.  If it is correct, predict its output.  If it is incorrect, point out the mistake(s).
    // Copy Constructor
    #include <iostream>
    using std::cout;
    using std::endl;

    class CBox             // Class definition at global scope
    {
      public:
        // Constructor definition
        explicit CBox(double lv, double bv = 1.0, double hv = 1.0)
        {     
          m_Length = lv;           // Set values of
          m_Width = bv;            // data members
          m_Height = hv;
        }

        CBox(CBox& initB)
        {
            m_Length = initB.m_Length;
            m_Width = initB.m_Width;
            m_Height = initB.m_Height;
        }

      // private: // What would happen if data members are private?
        double m_Length;           // Length of a box in inches
        double m_Width;            // Width of a box in inches
        double m_Height;           // Height of a box in inches
    };

    int main()
    {
      CBox box1(8.0, 5.0, 1.0);   // Declare cigar box
      CBox box2(box1);
      CBox box3 = box2;  
      cout << box3.m_Width << endl;
      return 0;
    }