--------这是俺滴学习笔记,不一定都对,如果错了大家可以留言纠正(初学c++中,到目前语法基本学完,就这么个水平。呵呵)
---------------------------(I/O那节课)
1. 我发现老师学习c++有个好的方法:那就是善于总结一小块知识点,理解成1-2句话,那就好记了。比如:I/O的操作,即控制光标的移动罢了。
2.善用return NULL; 不用else
3.3中基本加密算法:1.下标分奇偶,各执行一种加密 2. 下标各位为1的一种,2的一种,3的一种......类推。3.搞个公式,把下标带人公式,得出的值再和该下标元素计算。
4.(1异常:子类函数throw抛出不允许比父类抛出的多,大,广,只能<=. (2. void aaa(){} 此表示可以抛出任意错误 (3. void aaa() throw(){} 此表示不能抛出任何类型(子类也得到限制) (4.系统调用的那个什么timic....错误函数不会帮我们析构东东,只要有catch(...){},即使不做什么,也可以达帮我们析构。 (5. auto_ptr会自动帮我们释放托管的指针空间,所以在此基础上如果还加上delete,那么就真的悲剧了,会出错。 (6.异常抛出的类型可以是任意的,只要我们catch的时候正常对应的catch就行了,throw enum abc.
(7. virtual const char* what() const这个是异常的多态虚函数。 (8.如果一个指针被auto_ptr托管2次,那么第一次托管的那个auto-ptr会自动解除托管(这样也就避免了2次释放)
5.Uc 下的C++类基本上都是小写的呀。呵呵
6.C/C++用的是atoi() atof() atod() .......这一系列东东来把字符类型转化为int float double ......
7.文件:tellg/sizeof(d)可以算出记录coutn. 。。。 (2. 移动指针别忘了强转为 off_t类型 :seekg(2*(off_t)sizeof(s),ios::cur). (3. seekg(0,ios::beg/end);到文件头/尾
8.字符string:find() length() strsub(下标,长度)。
--------------------------(多态那节课)
1.C++中,只有通过指针和引用类型才能完成多态的效果。(对象无法实现地址的向导)
2.new了别忘了delete,NULL这是3兄弟啊。
3.虚函数地址其实是个偏移量,要加上虚表结构才能找到真实地址。子继承了该虚构表结构(覆盖的是虚表结构中的真实地址,仍然可以通过son.father::fun()来达到父函数调用
4.多态::必定要:虚析构函数。注意析构要加上virtual哦。别忘记了。
5.(检讨自己一下:老是跟同桌讲话,影响了别人,自己也得不偿失,失败!! 不能这样)。。。 还好有ctrl+z . 否则2行白写了:感谢上帝。。。。爱爱爱
6.调用父类的=重载:Father::operator=(obj); ,C++中,我们要多用临时对象,这样有优化
7.static成员:仅有一次空间的申请,之后就无视了。在外部初始化,不允许出现在构造中构造,因为是共享的。 static const成员函数其实作用域是被放大了,而不是缩小了,仔细想想就知道了。哈哈(只读,和引用成员:const & 要在初始化列表中来构造:a(a),b(c){} ,在括号中的不叫构造,叫赋值)
8.const函数 通过 mutable修饰 来走后门,达到修改数据的效果。2.const函数能和同名函数重载,普通对象优先调用普通函数撒!
9.为什么int abc(int *p);与int abc(int *const p);不可重载呢?
10
f.seekg(-3*sizeof(s),ios::cur); ------该语句没有移动效果
f.seekg(-3*(off_t)sizeof(s),ios::cur);--------该语句才有移动的效果。 |
11.多重继承时:要让子类先继承虚父类,这样才不会让子搞不清父同名的方法(一个虚一个不虚)到底该调用谁。
12.其实struct 和class都一样,只是struct 默认公有,其多态,继承都是可以和class一样的。呵呵
13.说说:重载,隐藏,覆盖的区别概念。嘻嘻。估计面试的时候也许会问到哦
14.typeid(obj).name()真实类名(多态也能够看得出真实类名) volatile mutable virtual
15.可查查虚表结构相关的资料哦。(今天复习到此结束,感觉这样的复习效果不错哦。)