创建iostream对象,寻错

1,C问题寻错把void get()const{return x;}的void改成int 。void不能有返回值!【创建iostream对象,寻错】
2,简单C问题成员函数没有指定为public的 。class的默认属性是private有两个地方改一下:1、类体刚开始的地方加 public:2、第一个构造函数改成:A(int i)
3,include iostreamh include conioh int count0 class Point int x两个问题注意了就行了.class是一个类,当创建一个对象时,先调用类的构造函数,撤销类对象时调用析构函数.#include <iostreamh>#include <conio.h>using namespace std;int count=0;//全局变量class Point int x,y;//类成员 public: Point() ~Point() friend void display();//友元};void display()void main() display();//执行display函数display(); }//对象数组由一对括号包住,证明对象数组的作用范围到此结束,次数需要调用析构函数,老规矩,调用5次,此时count又变回1 display();}
4,类与对象的问题34次!#include<iostream>using namespace std;class Myclasspublic:Myclass(int n) Myclass(Myclass& other) ~Myclass fun()private:int number;};Myclass fun(Myclass p)My class temp(p);// 3 次return temp;// 4次}int main()Myclass obj1(10),obj2(0);Myclass pbj3(obj1);//1次obj2=fun(obj3);// 2次return 0;} 这个问题 , 你要了解和弄清楚:复制构造函数的调用时机就行了,调用到复制构函数的的时机主要有三个:1·用已有的类对象初始化同类的新的创建对象时,要调用复制构造函数;2·当函数参数是类类型,调用函数时要调用复制构造函数,用实际参数初始化形式参数;3·类似2的,当函数返回类类型时,也要通过复制构造函数建立临时对对象,来返回值或对象;下面来分析一下代码:#include<iostream>using namespace std;class Myclasspublic:Myclass(int n) Myclass(Myclass& other) ~Myclass fun()private:int number;};Myclass fun(Myclass p)// 2次调用,用,实参初始化形参Myclass temp(p); //3次调用,第1种 方式,用已有对象初始化新的创建对象 tempreturn temp; //4次调用,第3种 方式,函数返回的是类类型 , 建立临时的对象,} //把temp的值,传给主函数main中的fun函数调用后返回的值之处int main()Myclass obj1(10),obj2(0);Myclass pbj3(obj1);//1次调用,是 第1种 调用方式;用已有对象初始化新对象obj2=fun(obj3); //调用函数 fun 形参是类类型,2次调用,是 第2种 方式,我们再(接着下面)return 0; //转到 fun 函数具体的函数体看看,}所以,共四次调用了,复制构造函数,明白了复制构造函数的调用时机,就可以举一反三啦 , 以后 , 遇到同样类似的题目,你也可以自己分析的,希望对你有用,..^_^..5,如何把内存块数据放入stdiostreamstdistream目的是要把data开始、fsizelow字节数据放入std::iostream或std::istream对象 。为此可用以下代码片断 。std::stringstream gangplank;std::iostream ifile(gangplank.rdbuf());ifile.write(data, fsizelow);它使用iostream.write把内存数据写入std::iostream对象,在要执行write这必须要先有一个“空”std::iostream对象 , 为此使用创建个std::stringstream对象 。注意:1、把创建std::stringstream对象和rdbuf()“缩减”为省为一步时 , 至少msvc中会报程序非法 。即用以下语句至少msvc中会报非法 。std::iostream ifile(std::stringstream().rdbuf());2、被过渡的对象须是既支持读又支持写的std::stringstream,使用只读的std::istringstream或只写的std::ostringstream都会导致失改 。。std::istreamstd::istream是std::iostream父类,因而得到std::iostream对象后就可以用dynamic_cast得到该对象的基类指针 。std::istream& o = *(dynamic_cast<std::istream*>(&ifile));复制代码若想重新创一个std::isteram对则可使用rdbuf() 。std::istream o(ifile.rdbuf());复制代码使用boost::gzip压缩/解压缩内存中数据目的是以gzip压缩/解压缩data开始、fsizelow字节数据 。要实现此目的,代码就是两个步骤,第一步骤就是以上说的“把内存块数据放入std::iostream/std::istream” 。......std::stringstream gangplank;std::iostream ifile(gangplank.rdbuf());ifile.write(data, fsizelow);boost::iostreams::filtering_stream<boost::iostreams::input> in;if (encode)in.push(boost::iostreams::gzip_compressor());} elsein.push(boost::iostreams::gzip_decompressor());}in.push(ifile);while (len = in.read((char*)data, chunk_size).gcount())// 此处data存储了gzip压缩/解压缩后数据,......if (len != chunk_size)break;}len = 0;}......}

    推荐阅读