科目名稱:程式設計 | 開課系所:資訊工程學系 | 任課教師 |
吳坤熹 |
||
系所別: |
年級: |
學號: |
姓名: |
考試日期 |
2011.3.2 |
(考試時間: 16:30-16:45)
#include <iostream>
using std::cout;
class CStack
{
public:
CStack() // Default Constructor
{
index = 0;
}
void push(int i)
{
a[index++] = i;
}
int pop()
{
return a[--index];
}
private:
#define StackSize 10
int a[StackSize];
int index;
};
int main() {
CStack stack1;
stack1.push(3); stack1.push(2);
cout << stack1.a[1] << "\n";
}
(10%) Determine whether the following code has syntax erros or not. If it is correct, predict its output. If it is
incorrect, point out the mistake(s).
#include <iostream> // Ex7_06.cpp
using std::cout;
using std::endl;
class CBox // Class definition at global scope
{
public:
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
// Constructor definition
CBox(double lv = 1.0, double bv, double hv = 1.0) // This line is different
{
cout << endl << "Constructor called.";
m_Length = lv; // Set values of
m_Width = bv; // data members
m_Height = hv;
}
// Function to calculate the volume of a box
double Volume()
{
return m_Length*m_Width*m_Height;
}
};
int main()
{
CBox box2; // Declare box2 - no initial values
cout << endl
<< "Volume of box2 = "
<< box2.Volume();
cout << endl;
return 0;
}
(10%) Determine whether the following code has syntax erros 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
CBox(double lv, double bv = 1.0, double hv = 1.0)
{
cout << endl << "Constructor called.";
m_Length = lv; // Set values of
m_Width = bv; // data members
m_Height = hv;
objectCount++;
}
CBox() // Default constructor
{
cout << endl
<< "Default constructor called.";
m_Length = m_Width = m_Height = 1.0;
objectCount++;
}
// Function to calculate the volume of a box
double Volume() const
{
return m_Length*m_Width*m_Height;
}
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 = 0; // Initialize static member of CBox class
int main()
{
CBox boxes[5]; // Array of CBox objects declared
cout << endl << endl
<< "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 << "Sizeof boxes[1] is " << sizeof boxes[1] << endl;
return 0;
}