欢迎来到天天文库
浏览记录
ID:17393875
大小:74.00 KB
页数:7页
时间:2018-08-30
《重载函数存在于类的继承》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1重载函数存在于类的继承,是指对你类已有的函数重新定义。重载要注意函数的返回类型及参数表要完全相同。结构struct和类class有什么异同? 解答要点:struct和class都可以定义类,但是缺省访问权限说明时,struct的成员是公有的,而class的成员是私有的。在C++中,struct可被class代替。2简述结构化的程序设计面向对象的程序设计的基本思想。解答要点:结构化的 程序设计 将数据和对数据的操作分离,程序是由一个个的函数组成的,面向对象的程序设计将数据和操作封装在一起,程序是由一个个对象组成的,对象之间通过接口进行通信
2、,它能够较好地支持程序代码的复用。3简述成员函数、全局函数和友元函数的差别。 解答要点:成员函数是在类内部定义的,作用域在类的内部,成员函数可以访问类的数据成员(公有、保护和私有数据成员),可以调用该类的其它成员函数(公有、保护和私有成员函数),可以调用全局函数。如果友元函数是另一个类的公有成员函数,则该类的成员函数也只能通过那个类的对象调用,不能调用那个类的保护和私有成员函数。非本类成员函数(其它类成员函数或全局函数)可以通过该类的对象访问该类的公有数据成员和调用该类的的公有成员函数。 (1)叙述机器语言、汇编语言、高级语言的特点。答:
3、机器语言是计算机直接执行的语言,有二进制的0和1构成的一系列指令组成;汇编语言是机器语言的助记符;高级语言是接近人的自然语言习惯的编程语言,通过编译变成机器语言。(2)结构化语言与面向对象语言是截然分开的吗?答:不是截然分开的,面向对象的程序设计中也包含过程,含有结构化的思想。(5)如何讲一个C++源程序变成可执行程序?产生的各类文件的扩展名是什么?答:通过编译变成带扩展名.obj目标文件;再通过链接变成带扩展名.exe的可执行文件。(1) 类和数据类型有何关系?答:类相当于一种包含函数的自定义数据类型,它不占内存空间,是一个抽象的“虚”体
4、,使用已定义的类建立对象就像用数据类型定义变量一样。对象建立后,对象占据内存,变成了一个“实”体。类和对象的关系就像数据类型和变量的关系一样。其实,一个变量就是一个简单的不含成员函数的数据对象。(2) 类和对象的内存分配关系如何?答:为节省内存,编译器在创建对象时,只为个对象分配用于保存各对象的数据成员初始化的值,并不为各对象的成员函数分配单独的内存空间,而是共享类的成员函数定义,即类中成员函数的定义为该类的所有对象所共享,这是C++编译器创建对象的一种方法,在实际应用中,我们仍然要将对象理解为有数据成员和函数成员两部分组成。(5)
5、 C++中静态成员有何作用?它的特点?答:C++提供了静态成员,用以解决同一个类的不同对象之间数据成员和函数共享问题。静态成员的特点是:不管这个类创建了多少对象,其静态成员在内存中只保留一份副本,这个副本为该类的所有对象所共享。面向对象方法中还有类属性(classattribute)的概念,类属性是描述类的所有对象的共同特征的一个数据项,对于任何对象实例,它的属性值是相同的,C++通过静态数据成员来实现类属性。6) 友元关系有何性质?答:①友元关系是不能传递的,不能被继承。如B类是A类的友元,C类是B类的友元,C类和A类之间,如
6、果没有声明,就没有任何友元关系,不能进行数据共享。②友元关系是单向的,不具交换性。如果声明B类是A类的友元,B类的成员函数就可以访问A类的私有和保护数据,但A类的成员函数却不能访问B类的私有和保护数据。习题8答案(1派生类如何实现对基类私有成员的访问?答:无论使用任何一种继承方式,基类的私有成员都不允许被外部函数直接访问,也不允许派生类的成员函数直接访问,但是可以通过基类公有成员函数间接访问该类的私有成员。(2)什么是赋值兼容?它会带来什么问题?答:类型兼容是指在公有派生的情况下,一个派生类对象可以作为基类的对象来使用。类型兼容又称为类型赋
7、值兼容后类型适应。在C++中,类型兼容主要指一下3种情况:① 派生类对象可以赋值给基类对象。② 派生类对象可以初始化基类的引用。③ 派生类对象的地址可以赋值给指向基类的指针。由于派生类对象中包含基类子对象,所以这种引用方式是安全的,但是这种方法只能引用从基类继承的成员。如果试图通过基类指针引用那些只有在派生类中才有的成员,编译器将会报告语法错误。(3) 多重继承时,构造函数和析构函数的执行顺序是如何实现的?答:多继承时,构造函数的执行顺序是:先执行基类的构造函数,再执行对象成员构造函数,最后执行派生类的构造函数。在
8、多个基类之间则严格按照派生类声明时从左到右的顺序来执行各基类的构造函数,而析构函数的执行顺序则正好与构造函数的执行顺序相反。(4) 继承与组合之间的区别与联系是什么?答:继承描
此文档下载收益归作者所有