## c++学习笔记 --基础篇(第一周)##
2016-05-14 14:08
357 查看
1、编程语言是由data与functions组成的,c++语言把data与functions组合到一起合并为类。类相当于c语言中的struct。
2、c++创建对象分为有指针和无指针两种。当前都是讲无指针类型
以complex(复数)为例。注意点
1)、防卫式声明
2)、inline函数,函数定义到类本体内,就可能成为inline函数,但是都取决于编译器。不在类本体中定义的需要加inline。
3)、创建对象方式:
A a(1); //栈中分配,隐式调用
A b = A(1); //栈中分配,显示调用,
A* c = new A(1); //堆中分配
4)、构造函数:与类名一样,用来创建对象,一般放在public中,但也有放在private中的;complex(double r=0,double i=0)默认参数;无返回值;初值列:re (r),re(i)
5)、函数重载overloading:函数名一样但参数不同,函数重载常常用在构造函数中。
6)、const:函数在类body中,并且如果函数不改变类的数据的话,那就在函数后加const,例:**double real() const {return re;};参数不变的话也要加const
7.1)、by value或者by reference(引用):用&符号,参数和返回值尽量传引用;引用类似指针。
7.2)不能使用reference返回值如果是在函数中创建的不能用引用返回。
8)、友元friend:类之外的函数想要使用类的private数据时,则需要将该函数设置为friend函数;同一个class中各个object互为friends。
9.1)、成员函数-操作符重载操作符就是一个函数;所有的成员函数都隐藏了一个this,函数调用对象不能写到参数中;
9.2)、非成员函数-操作符重载把调用函数的对象也写进参数中,这是与成员函数中的操作符重载最大的区别。如果是临时对象(typename()这种形式为临时对象)不能用refrence返回。
设计类重点关注的点:body外的函数加inline;返回值尽量用refrence来传递;参数尽量用refrence来传递,看是否加const;构造函数尽量用初值列;数据存放到private中;类的body中的函数需要加const时不要忘了。
2、c++创建对象分为有指针和无指针两种。当前都是讲无指针类型
以complex(复数)为例。注意点
1)、防卫式声明
2)、inline函数,函数定义到类本体内,就可能成为inline函数,但是都取决于编译器。不在类本体中定义的需要加inline。
3)、创建对象方式:
A a(1); //栈中分配,隐式调用
A b = A(1); //栈中分配,显示调用,
A* c = new A(1); //堆中分配
4)、构造函数:与类名一样,用来创建对象,一般放在public中,但也有放在private中的;complex(double r=0,double i=0)默认参数;无返回值;初值列:re (r),re(i)
5)、函数重载overloading:函数名一样但参数不同,函数重载常常用在构造函数中。
6)、const:函数在类body中,并且如果函数不改变类的数据的话,那就在函数后加const,例:**double real() const {return re;};参数不变的话也要加const
7.1)、by value或者by reference(引用):用&符号,参数和返回值尽量传引用;引用类似指针。
7.2)不能使用reference返回值如果是在函数中创建的不能用引用返回。
8)、友元friend:类之外的函数想要使用类的private数据时,则需要将该函数设置为friend函数;同一个class中各个object互为friends。
9.1)、成员函数-操作符重载操作符就是一个函数;所有的成员函数都隐藏了一个this,函数调用对象不能写到参数中;
9.2)、非成员函数-操作符重载把调用函数的对象也写进参数中,这是与成员函数中的操作符重载最大的区别。如果是临时对象(typename()这种形式为临时对象)不能用refrence返回。
设计类重点关注的点:body外的函数加inline;返回值尽量用refrence来传递;参数尽量用refrence来传递,看是否加const;构造函数尽量用初值列;数据存放到private中;类的body中的函数需要加const时不要忘了。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性