- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下面的程序是否有错误,如果有错,请说明原因。
char* const pszHelp = “hello”;
pszHelp[0] = ‘a’;
因为pszHelp指向一个常量字符串,所以根本不允许修改字符串内容。除非使用一个字符数组。
const用法:
const char* p
p是一字符串指针,该指针指向的内容是常量,指针指向的内容不能被修改
char const* p
同上
char* const p
p是一字符串指针,该指针是常量指针,指针不能被修改
什么是抽象类
包含抽象函数的类是抽象类,满足virtual fun() = 0; 的语法的函数是抽象函数。主要用于提供接口,如同Java中的Interface。
什么时候需要使用虚拟析构函数
一般情况下类的析构函数都定义成虚函数,主要是考虑在使用基类指针操作派生类对象时保证类的析构顺序。
请指出下面代码存在的潜在问题
class CC {
int* m_pCount;
public:
void clear() { if ( m_pCount ) delete m_pCount; }
CC() { m_pCount = new int; }
~CC() { clear(); }
}
主要存在的问题是clear函数在delete m_pCount;后并没有置指针为空(m_pCount = NULL),这样当第二次调用 clear 时,会出现问题。
如何定义禁止实例化的纯抽象基类
这个问题很奇怪,抽象类本身就不能被实例化,在程序编译时就会提示出错。
在进行私有继承时,如何修改基类成员的存取权限
定义一个指向该基类的友元函数,就可以绕过私有继承操作基类成员。
如何定义一个指向类的成员函数的指针
void (CC::*bfpClear)() = CC::clear;
类A派生类B和C,类D从类B、C派生,如何将一个类A的指针指向一个类D的指针
直接使用即可,主要是考察运行时多态的概念。本题和题4要一起考虑。
请说出程序运行的结果
class A {
public:
virtual void func() { cout “I am in base” endl; };
}
class B : public A {
public:
virtual void func() { cout “I am in derived” endl; }
}
void main()
{
B* bb = new B;
bb-func();
A* aa = (A*)bb;
aa-func();
….
}
I am in derived
I am in derived
主要考察虚函数的使用
分析下面代码,指出问题
int* func() { int i =0 ; return i; }
返回的是一个局部简单类型变量地址,程序可能会出错,而且返回的指针不能采用delete进行删除。
class CObject;
CObject* funobj() { CObject obj; …. return obj; }
返回的是一个局部CObject类型变量地址,程序会出错,而且返回的指针不能采用delete进行删除。
CString funobj() { CString strTemp = _T(“temp”); return strTemp; }
不会出错,返回的CString会调用CString的拷贝构造函数返回。
Debug版本中经常使用ASSERT进行断言,在Release版本中有一个起同样作用的函数,请说明。
VERIFY,而且要注意ASSERT中的语句在Release版本中会忽略。
标准建模语言UML的重要内容可以由五类图(共9种图形)来定义C++, Java等)和可重用的对象类库上有何经验?实际效果如何?有什么优缺点?
引用和指针之间有什么区别?
什么是函数重载?
C++与其它传统编程语言相比有何特点?
简要说明如何绘制UML活动图。
为什么有些类成员函数在类声明中定义而有一些则不是呢?
对象分析和设计的阶段有哪些?
为什么要费力地生成抽象数据类型――为什么不把它设为非抽象的数据类型和避免创建这种类型的对象呢?
什么是多态性?多态性是如何实现的?
查错:下面这段代码有什么错误?
class Shape()
{
public:
Shape();
virtual ~Shape();
virtual Shape(const Shape);
}
13、查错:下面的代码有什么错?
int main()
{
int SomeVariable = 5;
count ”SomeVariable:
您可能关注的文档
- book3Unit5听力答案及文本..doc
- Book4unit2workingthelandreading教学案例..doc
- Book5Module3复习学案..doc
- Book7Unit1LivingWell学案..doc
- Book8Unit3Inventorsandinventions词汇学案..doc
- Bozvrdn考研数学十年真题题型总结---考研必备..doc
- bp31报刊业务员(报刊分发模块)高级试卷正文..doc
- Bpekdq2010会计从业资格考试模拟试题---《会计基础》..doc
- Bpqfzt2010会计基础试题及答案..doc
- bq51报刊业务员(报刊零售模块)初级试卷正文..doc
文档评论(0)