GeekBand C++ 面向对象高级编程(上) 第一周笔记

  还记得大学刚学C++的时候,关系不错的学长告诉我,C++就是C的基础上加了Class。这话现在看来不准确,但在大学时段对我影响很大。借着这次GeekBand搞的的课程,也冲着侯捷老师,想要温一遍。前言就到这了。

  C++继承了C的高效,简介,可移植性。C++的面对对象特性可以应付很多复杂程度不断提高的现代编程。C++融合了3种不同的编程方式,分别是C语言代表的过程性语言;C++在C语言基础上添加的类代表的面相对象语言;C++模版所支持的范型编程。有两个很重要的概念,数据和算法。数据是程序使用和处理的信息,而算法是程序所使用的方法。如果信息是黄油,低筋面粉,白糖,牛奶等,算法是使用这些材料能做出的各式糕点。对于C语言来说,由于信息没有足够的关键字,所有的信息数据都是全局的,各个算法都可以处理。而C++则是把一种方法和材料相包含来处理。作为一个吃货,我觉得这么来理解C和C++在算法函数和信息数据方便不少。

  C++本身有两个Class的经典分类:

complex:不带指针,每个数据都包含实部虚部,由一个函数来处理。

string; 带指针,数据里都有一个指针,指向另一个空间来储存。  

  第二节课程里,侯捷老师提到防卫式声明,并且说明的它的重要性。以前学习的并没有注意到这点,单独拎出来,加个重点来做标记。

 complex.h

<span style="font-size:14px;"><span style="font-size:14px;"> #ifndef _COMPLEX_
 #define _COMPLEX_

  ....
  
  #endif</span></span>
  构造函数的主要作用是为了给对象成员变量赋初始值,与new运算符一起使用。它没有返回值,这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用。

  C++的构造函数定义格式为:

<span style="font-size:14px;"><span style="font-size:14px;">class <类名>
{
public:
<类名>(参数表)
//...(还可以声明其它成员函数)
};
<类名>::<函数名>(参数表)
{
//函数体
}
如以下定义是合法的:
class T
{
public:
T(int a=0){i=a;}//构造函数允许直接写在类定义内,也允许有参数表。
private:int i;
};</span></span>

  C++函数参数和返回值三种传递方式:值传递、指针传递和引用传递。

  Complex类被定义和实现在<complex>文件内,首先定义了三种数据结构: _C_double_complex(_Dcomplex_value)、_C_float_complex(_Fcomplex_value)、_C_ldouble_complex(_Lcomplex_value)。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值