- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1写出以下代码的输出结果。
class CClassA
{
public:
int a;
public:
CClassA();
CClassA(int a=0)
{
cout”create CClassA”aendl;
}
~CClassA()
{
cout”delete CClassA”endl;
}
}
class CClassB:public CClassA
{
public:
int b;
public:
CClassB(int ib):b=ib,a=ib
{
cout”create CClassB”bendl;
}
~CClassB()
{
cout”delete CClassB”endl;
}
}
main()
{
CClassA *pa=new CClassA;
delete pa;
}
提示:事实上原题我记不太清了,反正是考继承类与非继承类的构造与析构顺序:先构造父类,再构造子类,析构反过来。(有可能还考了多态,就是指针与new出来的可能不一样,记不太清了)
2上题main()函数第一句用new开辟了pa的内存,如果使用malloc分配,即pa=(CClassA*)malloc(sizeof(CClassA));会出现什么问题,为什么?并请说明new和malloc之间的区别。
提示:malloc不调构造函数,而new出来的是调构造函数的。
3
int i=10;
int *pint1=new int(10);
int *pint2=new int[10];
int aint[10];
计算一下下面四个值:
sizeof(i),sizeof(pint1),sizeof(pint2),sizeof(aint)
提示:4,4,4,40
4 实现一个整数的动态数组
//下面是代码,完成相应函数
const int ARRAT_GROWUP = 10;
//数组结构体定义
struct ArrayStruct
{
int iCurMaxElementCount; //当前数组最大能容纳元素的个数
int iCurElementCount; //当前元素数
int *pHead; //指针头部
};
//功能:生成一个数组,参数为最初元素个数
//参数:int iStartElementCount 数组初始化大小
//返回:成功返回指针,否则返回NULL
ArrayStruct *Array_Init(int iStartElementCount)
{
if(iStartElementCount = 0)
return NULL;
ArrayStruct *pReturn;
pReturn=new ArrayStruct;
if(pReturn == NULL)
return NULL;
pReturn-pHead = new int[iStartElementCount];
if(pReturn-pHead == NULL)
{
return NULL;
}
pReturn-iCurMaxElementCount = iStartElementCount;
pReturn-iCurElementCount = 0;
return pReturn;
}
//================完成下面的函数
//功能:向数组添加一个元素,如果元素超过上述Array_Init函数的iStartElementCount参数时,请考虑如何适应。可以假定一次增加ARRAY_GROWUP个元素容量,但是要保证在内存中数据为线性存放(也就是说连续的,像数组一样,而不是链表)
//参数:ArrayStruct *pArray 要处理的数组结构体指针
// const int iAppendElement 要增加的元素
//返回:成功时返回true,失败时返回false(10分)
bool Array_AddElement(ArrayStruct *pArray const int iAppendElement)
{
}
//功能:删除指定索引的元素,要保证元素在内存为线性不间隔存放
//参数:ArrayStruct *pArray 要处理的数组结构体指针
// const int iRemovedIndex 要删除的元素索引
//返回:成功时返回true,失败时返回false(10分)
bool Array_RemoveElement(ArrayStruct *pArray,const int iRemovedIndex)
{
}
//功能:返回指定索引的元素
//参数:const ArrayStruct *pArray 要处理的数
文档评论(0)