我学习C++:无题(每日追加型,小心爆了:酱爆)(一)

来源:互联网 发布:c语言 if break 编辑:程序博客网 时间:2024/06/05 16:53

--------这是俺滴学习笔记,不一定都对,如果错了大家可以留言纠正(初学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);--------该语句才有移动的效果。
刚刚才知道为什么:因为sizeof()返回的size_t是无符号的,而off_t则是long int有符号的,所以有些编译器如gcc g++就把-3当作了3,3还是3,所以要转化成off_t才能表示出-3,才有向前移动的效果。

11.多重继承时:要让子类先继承虚父类,这样才不会让子搞不清父同名的方法(一个虚一个不虚)到底该调用谁。

12.其实struct 和class都一样,只是struct 默认公有,其多态,继承都是可以和class一样的。呵呵

13.说说:重载,隐藏,覆盖的区别概念。嘻嘻。估计面试的时候也许会问到哦

14.typeid(obj).name()真实类名(多态也能够看得出真实类名) volatile mutable virtual

15.可查查虚表结构相关的资料哦。(今天复习到此结束,感觉这样的复习效果不错哦。)