摘要:
38 void f7(istream& in,ostream& out){ 39 // ios_basic::iostate s = cin.rdstate(); 40 int java; 41 for(int i =0;i >java; 43 out >java; 43 out << java << endl; 44 } 45 46 }不可行都是在调用f7(cin,cout);的情况下,为啥用了引用就能,是不是cin和cout不能被复制,如果没有引用就不会复制的原因,而cout和cin是不能被复制的,因为他们是标准的输出输入 阅读全文
摘要:
这个星期整整7天时间看完C++编程思想下个星期整整7天看完squid代码 阅读全文
摘要:
templateclass a{ 4 public: 5 a(T t1):value(t1){} 6 static a aa; 7 static int go; 8 T value; 9 static T gone; 10 }; 11 template int a::go = 1; 12 template T a::gone = 1;//一般只有具体的时候才有意义的void f1(){ 15 char val1=11; 16 short val2 = 12; 17 in... 阅读全文
摘要:
如果一个类中有很多成员对象(别的类的对象),则必须在此构造函数中完成构造(不管怎样,编译器会在此构造函数中增加很多代码)如果此类中有一个成员对象(别的类的对象)是需要参数的,则必须要定义构造函数,且明确调用这个成员的构造函数class a{ 4 public: 5 a(){cout <<" a " << endl;} 6 ~a(){cout << " ~a " << endl;} 7 }; 8 9 a& f1(){ 10 a a1; 11 return a1; 12 } 13 int main(){ 阅读全文
摘要:
22 void f3(){ 23 string str1 = "nimei"; 24 string str2; 25 string str3 = "a"; 26 cout << sizeof(str1) << endl << sizeof(str2) << endl<< sizeof(str3) << endl; 27 }大小都是4 阅读全文
摘要:
c++支持多态的方法引用和指针class a{public: virtual void f(){cout f();// 2 (*a3).f();// 2 a* p1 = new a; a* p2 = new b; b* p3 = dynamic_cast (p1); p3->f();//Segmentation fault p3 = dynamic_cast (p2); p3->f();// no problem return p3;}void f2(){ b* p= f1(); p->f();//2 (*p).f();//2}//cast其实是一种编译器指令,大部... 阅读全文
摘要:
26 class a{ 27 public: 28 a(){cout << "a" << endl;} 29 ~a(){cout << "~a" << endl;} 30 }; 45 class x:virtual public a{ 46 public: 47 x(){cout<<"x" << endl;} 48 ~x(){cout<<"~x" << endl;} 49 }; 50 class y:virtual pu 阅读全文
摘要:
如果定义一个类class x{};实际上相当于定义了两个构造函数和一个析构函数还有一个操作符函数实际上是这样的class x{ public: x(){...}; x(const x& x){...} ~x(){...} x& operator=(const x& x1){...}}; 阅读全文
摘要:
应用程序的可复用性可扩充性和可维护性是最优先考虑的工具箱是一个组相关的可复用的类的集合框架是构成一类特定软件的可复用设计的一组相互协调的类一个使用了设计模式的框架比没有使用设计模式的框架更可能获得高层次的设计复用和代码复用设计模式与框架比较1 设计模式比框架更抽象2 设计模式是比框架更小的体系结构元素3 框架比设计模式更加特例化 阅读全文