《面向对象程序设计》高手进~~~~~~~~~~~~!!

第四章
1、有哪几种派生方式?每种方式派生类对其类成员的继承性如何?
2、派生类能否直接访问其类的私有成员?若否,应如何实现?
3、保护成员有哪些特性,保护成员以公有方式私有方式被继承后的访问特性如何?
4、派生类构造函数和析构函数的执行顺序是怎样的?
5、派生类构造函数和析构函数的构造规则是怎样的?
6、什么是多重继承?多重继承时,构造函数和析构函数执行顺序是怎样的?

第六章
1、简述函数模板和模板车函数,类模板和模板类之间的关系如何?
2、函数模板与同名的非模板函数重载时,调用的顺序怎样的?

1.三种派生方式:private public protected
private:只允许在派生类的成员函数中访问基类原有的非私有成员
public:基类中的所有公有成员和保护成员在派生类中认为公有成员和保护 成员,可以通过派生类的成员函数访问基类中所有非私有成员。还可通过派生类的对象直接访问基类中的公有成员。
protected:基类中的所有公有成员和保护成员都成了保护成员,只允许派生类的成员函数及派生类的派生类中的成员函数访问基类的非私有成员,不能通过派生类的对象直接访问基类的任何成员。
2.派生类不能访问基类的私有成员。无论那种派生方式都继承了基类的所有成员,当然也包括私有成员,可以通过调用公有成员函数来访问和设置私有成员。
3.保护成员的特性:能被该类和继承类的成员函数访问。
(基类中的保护成员被公有私有方式继承后的特性看第一题)
4.派生类的构造函数执行之前必先调用基类的构造函数,建立基类的一个对象,当对象生命周期完结之时,先调用派生类的析构函数释放其资源,而后调用基类的析构函数。
5.基类中的构造函数和析构函数都不能被继承。
派生类的构造函数:派生类中的新的或者改造来的成员则需要自己的构造函数,从基类中继承来的则调用基类的构造函数。其中分隐式调用和显式调用。析构函数需派生类中重新构造。
6.多重继承:一个派生类由多个基类派生而来叫做多重继承。多重继承时,首先调用所有基类的构造函数,多个基类的构造函数的调用顺序按照定义派生类时各基类的排序确定,而后调用派生类的构造函数,析构函数为此逆序。

1.调用函数模板时产生一个实例——模板函数;类模板声明时所给出的已经确定了数据类型的类成为模板类,也就是说模板类是类模板的实例。
2.先调用模板函数,将具体的参数数据类型替换生成一个具体的函数使用。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-01-08
1、c++将输入输出设备包装成对象,形成了新的输入输出系统
2、cin,cout,cerr,clog
3、cerr不经过缓冲区,直接向显示器输出信息,而clog中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出
4、格式化函数、操作算子
5、打开文件,IO操作,关闭文件按
6、顺序文件,适用于读写连续块中的文本文件,以字符存储。由于是以字符存储,因此不宜存储太长的文件(如大量数字随机文件,适用于读写有固定长度多字段记录的文本文件或二进制文件,以二进制数存储。确定文件指针的位置用成员函数tellp(),tellg()。
第2个回答  2009-01-08
第四章

(1)C++中,描述类继承的语法是: class 派生类名:基类名表 {数据成员和成员函数说明},如果基类名表中只有一个基类,称为单继承;如果基类名表中有多个基类,称为多继承。继承性是由数据成员和成语函数说明中的“访问控制”来定义的,分为三种:public 公有继承;private 私有继承;protected保护继承。如果缺省访问控制符,则默认为私有继承。

(2)无论派生类以何种方式继承基类,都不能使用基类的私有成员。

可以通过定义类的友员来实现对私有成员的访问。友员可以访问类的所有成员,包括私有成员,友员可以是一个普通函数,成员函数或者一个类。

方法:在一个类A中,如果将关键字friend冠以一个函数原型或类名之前,则该函数或类就成为类A的友员。友员不受在类中的说明位置(private,protecte,public)影响,仅仅是声明类A的一个友员。
例子: class A
{private:
int i;
void M(int);
friend void F(A* ,int); //定义F是类A的友员
};
.......
void F(A * ptr, int x)
{ptr -> i=x;}; //友员函数访问类的私有数据成员
void A :: M(int x)
{i=x};
(3)保护成员是对派生类有屏蔽作用。公有继承后,基类的保护成员为派生类的保护成员;私有继承后,基类的保护成员为派生类的私有成员

(4)在主函数运行到与类对应的声明对象时,调用构造函数;
主函数结束后,撤销对应对象时,自动调用解析函数

(5)例子:
#include<iostream.h>
class Date
{ public:
Date();
~Date();
........
};
Date::Date() //定义 构造函数
{.........}
Date::~Date() //定义 解析函数
{.........}

void main()
{Date d; //调用构造函数
........
} //程序结束 自动调用解析函数

(6)一个派生类有多个直接基类,称为“多继承”

多个基类的派生类构造函数用初始式调用基类构造函数,执行顺序与单继承构造函数情况类似:先执行基类构造函数,再执行子对象构造函数,最后执行本身的构造函数。由于多继承的派生类有多个直接基类,他们的构造函数执行顺序取决于定义派生类时指定的各个继承基类的顺序,而与派生类构造函数成员初始化列表中给定的基类顺序无关。

解析函数的调用顺序与单继承相似,特别注意,先调用的后解析,类似堆栈。

第六章

(1)一般函数是对相同类型数据对象(不同值)操作的抽象。函数模板是对相同逻辑结构(不同数据类型)数据对象操作的抽象,是生成不通类型参数重载函数的“模板”。

模板函数是一个函数,是函数模板的实例化,一个函数模板可以实例化多个模板函数。

类模板与模板类与函数模板和模板函数相似。

类模板的成员函数是函数模板,当类模板实例化时,成员函数(函数模板)同时实例化为模板函数

(2)编译器通过匹配过程确定调用哪个函数。匹配顺序如下:

1.寻找和使用最符合函数名和参数类型的模板函数。

2.否则,寻找一个函数模板,将其实例化产生一个匹配的模板函数,若找到,则调用。

3.否则,寻找可以通过类型转换经行参数匹配的重载函数,若找到,则调用。
4.如果按以上均找不到匹配函数,则这个调用是错误的。若这个调用有多余一个的匹配选择,则这个调用也是错误的。

这个答案应该算很详细了,而且还配有程序和注释,看懂应该没有问题,希望对你有所帮助。

《面向对象程序设计》高手进~~~!!
1.三种派生方式:private public protected private:只允许在派生类的成员函数中访问基类原有的非私有成员 public:基类中的所有公有成员和保护成员在派生类中认为公有成员和保护 成员,可以通过派生类的成员函数访问基类中所有非私有成员。还可通过派生类的对象直接访问基类中的公有成员。protected:基类中的...

《面向对象程序设计》高手进~~~!!
其中setscore ( )用来设置english_score的值,grintscore ( )用来输出english_score的值,在主程序中定义类score的两个对象stu 1和stu 2,其英语成绩分别为85.5和93.5,输出这两个分数。

C++面向对象编程高手请进来帮帮看看这个程序,关于文件操作的,在线等 ...
打开文件的时候要指定是打开输出和读入。file.open("my_daling.txt", ios::in | ios:: out | ios::app | ios::binary);

Java面向对象程序设计__哪位JAVA高手帮我做一下这些题目.
1 Smalltalk语言和C++语言 2 object 3 class 4 RuntimeException和Error 5 Third 6 (7)new Rectangle(2.5,8.7);(8)myRect.area();(9)this.width (10)this.length

我是个女孩,正在学习c++,感觉非常吃力,求助各位高手,传授经验,到底应该...
我理解的C++程序,是由算法和语法构成。算法就是方法,就好像是数学中的函数,它是程序的核心,所以在写程序之前,你首先要明确程序的算法才行。语法相对来说比较简单,只要你平时好好看一些基础的书,应该问题不大。另外平时多注意搜集一些经典的程序,如用到for语句的杨辉三角,用到switch的输出一年12...

c++入门用那本书好?
C++书籍汗牛充梁,但真正适合新手,概念清晰、讲解通俗易懂又不失深刻的就那么几本。它们是:(再次强调:适合新手)(电子书一般都是20M以上,不能发送,只能自己在网上下载)1:谭浩强的<<c++程序设计>>(2004年的红书500多页,好评如潮) (网上有该书的电子版并附带全书例子程序和习题答案程序)(...

我想学程序开发,也就是编程,应该从哪里学起,现在什么也不会?
这个得看你想做哪方面的开发,一般我觉得先理解一些基本的概念比较好。比如面向过程的话学一下c,面向对象的理解起来稍微有点难,可以学一下c++。我以前看的书c 是北京理工出的,c++的话,可以看清华的谭浩强的面向对象程序设计那本。数据库以前学的是vf,后来直接就用了sqlserver了,sql语句用的多了...

额是一大一新生,初学c++
2.第三版分三个程序思想(基于过程、基于对象、面向对象),每种思想各写一篇,层次很清晰。而第四版我看了看,整本书是偏向面向对象的。个人感觉,还是对程序设计的发展做个有层次的理解更好。 3.很多人对这本书最为垢病的是,认为这本书很难。以至于到后面人云亦云了,我不知道说这些话的人有多少是真正看过第...

java题目,请高手帮忙解决。
用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。 所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓...

求几门课程英文翻译(计算机类)--- 高手进! ---速度拿分
面向对象程序设计Object-oriented Programming 网络应用与开发The implement and development for network 多媒体技术 Multimedia technology 信息系统分析Information System analysis “计算机维修维护”英语应该是Computer Repair and Maintenance.这是理工大学的课程分类,可以看看:)~http:\/\/www.centennialcollege....

相似回答