三言两语话C++

一. 背景:由于要搞清楚一段用ATL写的一个比较有趣的程序,现学C++(也不能算是现学,以前也接触过,但没有深入),用了三、四天的时间看了C++的一些大略,现有创作的欲望,所以有此文,更主要的是看了候捷的一句话“发表是最好的记忆”
 
二. 参考书:
a) 清华出版社 -- 《C++语言设计》1999年
b) 机工 --《学习visual C++ 24学时》
c) 《21天学习C++》 :一本很好的电子书
d) 松岗出版社:《高等C语言》

三. 说明:清华版的《C++语言设计》是大学的教程,语言简练,内容枯燥,但是一个好教材,学院气重,看这个主要是用于记忆。《21天学习C++》是一篇语言生动、内容丰富的C++教材,不知道是哪一天我从网上得到的,真是缘分啊,有上一本书我不太懂的问题我在这本书上懂了,不过其中的源码没有细研究,所以才这么快!为了与C有一个比较,把我以前看的《高等C语言》也放在案旁。 还有,你必须有一个好的翻译软件,因为一些关键的词中文言不达意,可以查看一下原意和起源,对你的理解有一个很好的帮助,推荐用“金山词霸”。举个例子:函数原型(prototype)的意思如果不太理解的话,查一下:An original type, form, or instance that serves as a model on which later stages are based or judged.(原型一种原初的类型、形式或例证,是作为其后期阶段的基础的模型),如果你再参考一个编译原理,就会知道这个词是多么确切! 关于机工的《学习visual C++ 24学时》主要是上机熟悉VC的编辑器以及如何使用MFC(我用了半天的时间试完了此书的所有例子)。

四. 正文:好了,言归正传!我用三言两语大话C++,ready! Go,请注意:如果你看不下去,千万别勉强,可以试着用的上面的方法去学C++
章1:c++是C的一个进阶,C可贯穿高等语言和低等语言
章2:函数 1. 传值 2. 传址:&P 3. 数组自动传指针
       函数原形:prototype英文也具有模式的意思,在调用之前,可以让C++的编译器对函数有一个大概的了解。
       函数声明是描述了函数的原型,函数定义从函数体的第一行开始。函数声明不需要特别说明参数如 int compArea(int,int) //prototype
        函数参数表中未说明参数可理解为空参数(void) 如 comparea() 等效与 comparea(void) 类型转换:x=(float) i //c x=float(i) //c++ ,more like a function
       宏:尽量减少用#define 如下 #define doub(x) x*2 而 doub(1+2) 被理解为 (1+2)*2 ,而按优先级为 1+2*2返回值为5 //error 可替代用 inline function 定义为: inline func(参数),缺点:结构不易读,更重要的是如果函数过大,编译器可以置之不理 所以要尽量少用,
    常用预定义标识符:char cData[] = _DATE_ ;//Define data char cTime[] = _TIME_ ;//Define time 函数参数传递:有三种方式: 1 按值(按拷贝),效率低,不改变原来的值 2 按地址(指针),目前不推荐 ,改变了原来的值,效率高 3 按引用:推荐代替第二种的方式,因为简洁,原理是自动间接引用;改变了原来的值,效率高 int fuc(int & i) {i=i++ //里面不需要用*i,简洁} **如果要保证效率高,而又不改变原来的值,可用const
      左值引用 例: func1(4,6) = 0; int & func1(int & c,int & f){return (c>f) ? c:f }
       缺省参数:sTax (float taxRate=0.7); //在原型中写出,而不是定义语句中
      重载:c++是通过name-mangling技术来管理相同函数名的,也称为名字压廷,要想不通过压廷而直接用C的函数可有么下语句 extern "c" void func1() 重载函数:
     运算符重载:是C++从程序中抛弃微波细节的能力的集中表现
     指针:用 * P 定义指针变量,&P取指针的地址,
      虚函数:要知道虚函数概念,先要知道动态编连(bind)的概念,与静态编连相对,是在调用时连结,属于多态静态编连是,当调用函数时,函数已经呆在内存的相对位置中,而动态则不同,当连编时,调用该函数时,只是指向该函数的指针。
      纯虚函数,在基类中没有实例化叫纯虚函数,表达如下 virtrue func() =0 (如果没有=0,是虚函数),带有纯虚函数的类叫抽象类(与java相似)
        虚基类:是为了多继承设计的,当子类是从同一个父类继承,而孙类又继承两个子类,可以将子类设为虚类,格式如下 class 派生类名 :
      virtual 继承方式 基类名,其设计的目的是为了让孙类可以有访问到基类的公用函数,并且减少空间和简洁(未完,待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值