综合设计

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:20:46
下面是看到的一些设计题目,希望各位老大们讲解下,7道题,只需讲讲您会的和做题思路,我比较菜,但我会好好虚心请教的,另外附上100分,虽然不多,但我是很认真的,谢过……
1、编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:
class String
{ public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String的上述4个函数。
2、设计一个点类point,要求设计成员函数:通过键盘输入来设置点坐标,并且计算一个点离原点的距离。写出相应的main函数,并输出计算结果。
3、写一个程序,声明抽象基类Shape,由它派生出两个子类:circle(圆形),rectangle(矩形),用一个函数printArea分别求他们的面积。
4、实现一个字符串类CString ,该类可以进行字符串的连接运算如:
CString str1("first"),str2("last");
CString str3= str1+str2+"between";
5、设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类派生的,要求输出一个圆桌的高度(height)、面积(area)和颜色(color)等数据。圆桌类对象初始化形式如下:roundtable rt1(5,3.14,"RED");
6、定义

class String
{ public:
String(const char *str = NULL) // 普通构造函数
{
m_data = str;
}
String(const String &other); // 拷贝构造函数
{
size_t length = strlen(other.m_data);
memcpy(this->m_data,other.m_data,sizeof(char)*length);
}
~ String(void); // 析构函数
{
delete[] m_data;
m_data= NULL;
}
String & operate =(const String &other); // 赋值函数
{
size_t length = strlen(other.m_data);
memcpy(this->m_data,other.m_data,sizeof(char)*length);
}
private:
char *m_data; // 用于保存字符串
};
2.我就得查msdn了
3.基类数据成员用保护,float a,b;
virtual float printArea() = 0;
子类实现就完事了,子类的圆形构造circle(float a):Shape(a,a)
矩形就rectangle(float a,float b):Shape(a,b)
也可以基类就float a;
矩形就多个数据就完事了