iostream什么,高手给一下注释谢谢 includeusing namespace std int

1,高手给一下注释谢谢 include iostream using namespace std int#include //引入一个类库 using namespace std;//使用标准名称空间 int main() //主函数 { int k[11]; int a,b,c,d; // 声明你好!输出输入一个库,库的类命名空间using namespace std,主函数int k[11]; int a,b,c,d;如果对你有帮助,望采纳 。【iostream什么,高手给一下注释谢谢 includeusing namespace std int】
2,sstream和fstream是什么意思呀C++程序把输入和输出看作字符流,输入时 , 程序从输入流中提取字节,输出时,程序把字节插入到输出流中 。对于输入输出流既可以来自标准输入输出设备,也可以来自文件 , 甚至可以来自String对象,三者分别属于iostream family、fstream family、sstream family 。对于iostream类,就是我们通常所说的标准流,它把程序跟标准I/O连接在一起,输入来自键盘,输出送往监视器 。对于fstream类,它把程序跟文件关联起来,输入来自文件 , 输出到文件 。对于sstream类,它是提供程序和string对象之间的I/O , 可通过ostringstream sout和istringstream sin来声明两个对象,分别对应输出流和输入流,这给编程带来极大的方便,例如可以从文本文件中读取一批数字字符到string对象中,再把string对象作为程序的输入流 , 既可把从文件中读取来的数字字符单个进行读取,从而进行处理 。例如: string line; int word; ifstream fin("test.txt"); while(getline(fin,line)) // {istringstream sin(line); //输入流重定向到string对象while(sin>>word) //在string对象中读取数字 { ...... //处理} } 当然了,输出也是一样的道理 。
3,什么是虚函数虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public,在基类的类定义中定义虚函数的一般形式:virtual函数返回值类型虚函数名(形参表)函数体} 虚函数的作用是实现动态联编 , 也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基类的派生类中对虚函数重新定义,在派生类中重新定义的函数应与虚函数具有相同的形参个数和形参类型 。以实现统一的接口,不同定义过程 。如果在派生类中没有对虚函数重新定义,则它继承其基类的虚函数 。当程序发现虚函数名前的关键字virtual后 , 会自动将其作为动态联编处理,即在程序运行时动态地选择合适的成员函数 。?。╗2010.10.28]注:下行语义容易使人产生理解上的偏差,实际效果应为:如存在:Base->Derive1->Derive2及它们所拥有的虚函数func()则在访问派生类Derive1的实例时,使用其基类Base及本身类型Derive1 , 或被静态转换的后续派生类Derive2的指针或引用,均可访问到Derive1所实现的func() 。)动态联编规定,只能通过指向基类的指针或基类对象的引用来调用虚函数,其格式:指向基类的指针变量名->虚函数名(实参表)或基类对象的引用名.虚函数名(实参表)虚函数是C++多态的一种表现例如:子类继承了父类的一个函数(方法) , 而我们把父类的指针指向子类,则必须把父类的该函数(方法)设为virtual(虚函数) 。使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价 。如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为virtual函数名=0我们把这样的函数(方法)称为纯虚函数 。如果一个类包含了纯虚函数,称此类为抽象类 。虚函数的实例#include<iostream.h>classCshapepublic:voidSetColor(intcolor)m_nColor=color;}voidvirtualDisplay(void)cout<<"Cshape"<<endl;}private:intm_nColor;};classCrectangle:publicCshapepublic:voidvirtualDisplay(void)cout<<"Crectangle"<<endl;}};classCtriangle:publicCshapevoidvirtualDisplay(void)cout<<"Ctriangle"<<endl;}};classCellipse:publicCshapepublic:voidvirtualDisplay(void)cout<<"Cellipse"<<endl;}};voidmain()CshapeobShape;CellipseobEllipse;CtriangleobTriangle;CrectangleobRectangle;Cshape*pShape[4]=&obShape,&obEllipse,&obTriangle,&obRectangle};for(intI=0;I<4;I++)pShape[I]->Display();}本程序运行结果:CshapeCellipseCtriangleCrectangle条件所以 , 从以上程序分析,实现动态联编需要三个条件:1、必须把动态联编的行为定义为类的虚函数 。2、类之间存在子类型关系,一般表现为一个类从另一个类公有派生而来 。3、必须先使用基类指针指向子类型的对象 , 然后直接或者间接使用基类指针调用虚函数 。函数的传统定义:设在某变化过程中有两个变量x、y,如果对于x在某一范围内的每一个确定的值,y都有唯一确定的值与它对应,那么就称y是x的函数,x叫做自变量 。我们将自变量x取值的集合叫做函数的定义域,和自变量x对应的y的值叫做函数值,函数值的集合叫做函数的值域 。函数的近代定义:设A,B都是非空的数的集合,f:x→y是从A到B的一个对应法则,那么从A到B的映射f:A→B就叫做函数,记作y=f(x),其中x∈A,y∈B,原象集合A叫做函数f(x)的定义域,象集合C叫做函数f(x)的值域,显然有CB 。可以让成员函数操作一般化,用基类的指针指向不同的派生类的对象时,基类指针调用其虚成员函数 , 则会调用其真正指向对象的成员函数 ,  而不是基类中定义的成员函数(只要派生类改写了该成员函数) 。若不是虚函数,则不管基类指针指向的哪个派生类对象 , 调用时都 会调用基类中定义的那个函数 。例class Avirtual void AAA()cout<<"这是基类的!";}};class a:Avoid AAA()cout<<"这是派生类a!";}};然后你生成a的实例,调用AAA()方法时,程序调用的是a中的AAA,而不是A中的AAA如果你不定义virtual,在生成a的实例后调用的是基类的AAA()虚函数是指一个类中你希望重载的成员函数,当你用一个基类指针或引用指向一个继承类对象的时候 , 你调用一个虚函数,实际调用的是继承类的版本 。有纯虚函数的类是抽象类,不能生成对象,只能派生 。他派生的类的纯虚函数没有被改写,那么,它的派生类还是个抽象类 。定义纯虚函数就是为了让基类不可实例化化, 因为实例化这样的抽象数据结构本身并没有意义. 或者给出实现也没有意义 实际上我个人认为纯虚函数的引入,是出于两个目的, 1.为了安全.因为避免任何需要明确但是因为不小心而导致的未知的结果. 提醒子类去做应做的实现. 2.为了效率,不是程序执行的效率,而是为了编码的效率.虚函数表示函数是以间接的方式被调用,而不是由一个固定的函数入口地址来调用 , 一个函数调用可以对应不同的函数入口地址 。虚函数除了不能作为内联函数外,它遵循普通成员函数的所有语法规则 。函数声明语法:virtual return_type name( arguments );在函数的定义部分和它的派生类的声明部分无需重复使用virtual关键字,它的所有派生类都保持virtual类型 。把函数转变为虚函数的作用是为了配合通过基类指针访问某一对象的操作 。如果在派生类里没有对某一函数进行重载,也就不必把此函数声明成虚函数 。在进行函数调用时 , 虚函数的表现要略逊于普通函数,而且它也比代码相同的实函数占据较多的内存空间 。

    推荐阅读