GeekBand C++ 面向对象高级编程(上) 第一周笔记
2016-07-25 20:31
302 查看
还记得大学刚学C++的时候,关系不错的学长告诉我,C++就是C的基础上加了Class。这话现在看来不准确,但在大学时段对我影响很大。借着这次GeekBand搞的的课程,也冲着侯捷老师,想要温一遍。前言就到这了。
C++继承了C的高效,简介,可移植性。C++的面对对象特性可以应付很多复杂程度不断提高的现代编程。C++融合了3种不同的编程方式,分别是C语言代表的过程性语言;C++在C语言基础上添加的类代表的面相对象语言;C++模版所支持的范型编程。有两个很重要的概念,数据和算法。数据是程序使用和处理的信息,而算法是程序所使用的方法。如果信息是黄油,低筋面粉,白糖,牛奶等,算法是使用这些材料能做出的各式糕点。对于C语言来说,由于信息没有足够的关键字,所有的信息数据都是全局的,各个算法都可以处理。而C++则是把一种方法和材料相包含来处理。作为一个吃货,我觉得这么来理解C和C++在算法函数和信息数据方便不少。
C++本身有两个Class的经典分类:
complex:不带指针,每个数据都包含实部虚部,由一个函数来处理。
string; 带指针,数据里都有一个指针,指向另一个空间来储存。
第二节课程里,侯捷老师提到防卫式声明,并且说明的它的重要性。以前学习的并没有注意到这点,单独拎出来,加个重点来做标记。
complex.h
C++的构造函数定义格式为:
C++函数参数和返回值三种传递方式:值传递、指针传递和引用传递。
Complex类被定义和实现在<complex>文件内,首先定义了三种数据结构: _C_double_complex(_Dcomplex_value)、_C_float_complex(_Fcomplex_value)、_C_ldouble_complex(_Lcomplex_value)。
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)。
相关文章推荐
- C++文件读取操作详解
- C++中隐式转换和显示转换
- Leetcode 31. Next Permutation (Medium) (cpp)
- c语言基础
- C++11新特性:可变参数模板
- C语言开始
- C语言 用free函数释放在堆上申请的空间,这个函数到底做了什么
- c++设计模式之组合模式
- 使用JNI进行Java与C/C++语言混合编程(1)--在Java中调用C/C++本地库
- C语言学习超前期
- C++实现ping功能
- c++ 初学者
- C语言 关键字!!面试常碰到!
- [置顶] C语言做的接鸡蛋小游戏(附源码注释)【原创】
- 指针数组
- C++_lesson_1,命令框编译源文件方法
- c/c++第一天
- c++较好程序:读取csv文件
- C语言的艺术初习
- C++编程实现从注册表中获取程序安装路径并调用exe文件