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

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

1.调用函数模板时产生一个实例——模板函数;类模板声明时所给出的已经确定了数据类型的类成为模板类,也就是说模板类是类模板的实例。
2.先调用模板函数,将具体的参数数据类型替换生成一个具体的函数使用。

1、c++将输入输出设备包装成对象,形成了新的输入输出系统
2、cin,cout,cerr,clog
3、cerr不经过缓冲区,直接向显示器输出信息,而clog中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出
4、格式化函数、操作算子
5、打开文件,IO操作,关闭文件按
6、顺序文件,适用于读写连续块中的文本文件,以字符存储。由于是以字符存储,因此不宜存储太长的文件(如大量数字随机文件,适用于读写有固定长度多字段记录的文本文件或二进制文件,以二进制数存储。确定文件指针的位置用成员函数tellp(),tellg()。

第四章

(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、如下两个函数原型是否等价?
Float fun(int a, flaot b, char*c);
Float fun(int, float, char* c);
等价

2、如下两个函数第一行是否等价?
Float fun(int a, flaot b, char*c)
Float fun(int, float, char*);
等价
3、如下两个函数是否等价
Float fun ( );
Float fun (void);
等价
4、下列在内存中分配一个整数并将其初始化为零的语句正确与否?
Int * myval=new int (0);
正确

1、如下两个函数原型是否等价?
Float fun(int a, flaot b, char*c);
Float fun(int, float, char* c);
等价

2、如下两个函数第一行是否等价?
Float fun(int a, flaot b, char*c)
Float fun(int, float, char*);
等价
3、如下两个函数是否等价
Float fun ( );
Float fun (void);
等价
4、下列在内存中分配一个整数并将其初始化为零的语句正确与否?
Int * myval=new int (0);
正确

什么是面向对象的程序设计
答:面向对象程序设计的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。面向对象程序设计达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。一项由 Deborah J. Armstrong 进行的长达40年之久的计算机着作调查显示...

8.1.1什么是面向对象的程序设计.ppt
答:继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织...

什么是面向对象的程序设计? 能通俗得说明吗?
答:所谓面向对象的程序设计,就是把面向对象的思想应用到软件工程中,并指导开发维护软件。 对象是由数据和容许的操作组成的封装体,所谓面向对象,就是基于对象的概念,以对象为中心,类和继承为构造机制,认识了解刻画客观世界以及开发出相应的软件系统。你学习过C语言没有,C语言就是面向过程的。JAVA就是...

面向对象的程序设计语言是一种
答:为了能带来可观的商业利益,必须在更广泛的范围中运用重用机制,而不是仅仅在程序设计这个层次上进行重用。软件开发组织既可能重用它在某个问题域内的OOA结果,也可能重用相应的OOD和OOP结果。面向对象的程序设计语言的语种 1、Smalltalk Smalltalk并不是一种单纯的程序设计语言,而是反映面向对象程序设计思想...

面向对象程序设计!!
答:class people { protected double height, weight;public void setp (double height, double weight) { this.height = height;this.weight = weight;} public void showp () { System.out.println("height: " + height);System.out.println("weight: " + weight);} } public class student ...

什么叫面向对象的程序设计 完全解答追再100
答:c是不面向对象的,只能编译代码。C++ 是面向对象,就是你做的程序你能看到实现了什么功能。面向对象就如同你上网时在某个网页上点了右上角的叉,这个网页就关闭了,说明你的操作是对这个网页进行的。这就叫面向对象,你按哪个按钮就能实现那个按钮的功能。c++就是编程去实现这个按钮要实现的功能。c就像...

c++面向对象程序设计 急用请调试
答:class salary { private:double wage,subsidy,rent,waterfee,elecfee;public:salary(double wg=1000,ss=1000,rn=1000,wf=1000,ef=1000){ wage=wg;subsidy=ss;rent=rn;watefree=wf;elecfee=ef;} salary(){ wage=0;subsidy=0;rent=0;waterfee=0;elecfee=0 } //以下是set函数,设置各分项...

什么是面向对象编程?
答:一.前言 其实不管是java还是.net都是属于面向对象程序设计语言,归根结底,它们都离不开面向对象,所以什么是面向对象呢,意思就是object-oriented将对数据和对数据的操作作为一个相互依赖的关系、不可分割的整体,才用信息隐蔽技术和数据抽象,更简单地解决现实当中的问题!上面的概念比较抽象,这里涉及到一...

求高手看看题,计算机面向对象程序设计
答:回答:*int 不对,改为 int; cout 输出注意变量大小写问题; cout 需要加定义域 std:: 或者添加:using namesapce std

《面向对象程序设计C++》问题,0错误0警告,但是运行不了,请高手帮忙看看...
答:估计是电脑问题吧,特别是系统是盗版情况下