第16题
程序阅读题
1、
#include <iostream.h>
class B
{
public:
B(){}
B(int i,int j){a=i;b=j;}
void printb()
{cout<<"a="<<a<<",b="<<b<<endl;}
private:
int a,b;
};
class A
{
B c;
public:
A(){}
A(int i,int j):c(i,j){}
void printa(){c.printb();}
};
int main()
{A a(7,8);
a.printa();
}
2、
#include <iostream.h>
class CArray
{int *m_pArray;
int m_iSize;
public:
CArray(int iArray[],int iSize)
{m_pArray=iArray;
m_iSize=iSize;
}
int GetSize()
{return m_iSize;}
int &operator[](int i)
{return m_pArray[i];}
};
int main()
{int s[]={3,7,2,1,5};
CArray oArray(s,5);
oArray[0]=9;
for(int i=0;i<5;i++)
cout<<oArray[i]<<" ";
cout<<endl;
}
3、
#include <iostream.h>
#include <math.h>
template <class T>
class TAdd
{T x,y;
public:
TAdd(T a,T b){x=a,y=b;}
T add(){return x+y;}
};
int main()
{TAdd<int> A(5,6);
TAdd<double> B(2.4,5.8);
cout<<"s1="<<A.add()<<endl;
cout<<"s2="<<B.add()<<endl;
}
4、
#include <iostream.h>
class base
{
public:
void who(){cout<<"base class"<<endl;}
};
class derive1:public base
{
public:
void who(){cout<<"derive1 class"<<endl;}
};
class derive2:public base
{
public:
void who(){cout<<"derive2 class"<<endl;}
};
int main()
{base obj1,*p;
derive1 obj2;
derive2 obj3;
p=&obj1;
p->who();
p=&obj2;
p->who();
p=&obj3;
p->who();
obj2.who();
obj3.who();
}
5、
#include <iostream>
#include <cmath>
#include <stdexcept>
using namespace std;
double area(double a, double b, double c) {
if (a <= 0 || b <= 0 || c <= 0)
throw invalid_argument("the side length should be positive");
if (a + b <= c || b + c <= a || c + a <= b)
throw invalid_argument("the side length should fit the triangle inequality");
double s = (a + b + c) / 2;
return sqrt(s * (s - a) * (s - b) * (s - c));
}
int main() {
double a, b, c;cin >> a >> b >> c; //输入1 2 4
try {
double s = area(a, b, c);
cout << "Area: " << s << endl;
} catch (exception &e) {
cout << "Error: " << e.what() << endl;
}
}