极客班第一周学习笔记

初识C++

C++是在C之上基于对象,面向对象的编程语言。c++相比c在编程上更加模块化,具象化。

C++代码规范


●防卫试声明:

                    #ifndef "name"

                    #define"name"

                    #endif

 

极客班第一周学习笔记_第1张图片
为了避免重复的定义和声明有必要使用防卫声明


●头文件:


标准的c++头文件 没有.h

#include

#include


极客班第一周学习笔记_第2张图片
前置声明:先声明存在命名为complex的class,编译器才不会报错

●class的声明


极客班第一周学习笔记_第3张图片
蓝色字体complex是类的名字,括号中的是本体。

public:可以被该类中的函数、子类的函数、其友元函数、该类的对象访问。

private:只能由该类中的函数、其友元函数访问。不能被该类的对象访问。PS:数据部分最好放在私有

protected:可以被该类中的函数、子类的函数、其友元函数访问,不能被该类的对象访问。

Friend:可以访问类内private和protected成员

构造函数:命名与类名相同,没有返回值。主要作用于创建对象,初始化。re(r) == (re=r):类型名加括号表示创建临时对象,这是构造函数的一种语法,这样写表示受过良好训练。构造函数可以有很多个(重载)。

class模板如图:

极客班第一周学习笔记_第4张图片
template表示还未确定数据类型,用T表示



inline函数:在类中定义的函数成为inline函数,如real() image(),在类外你也可以写inline,具体如何处理由编译器决定。

const函数:表示不会修改类内数据,如果成员函数不加const,调用对象再加const就会报错。


●参数传递


引用概念:

引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。

引用的声明方法:类型标识符 &引用名=目标变量名;

例:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名


此处参数为引用,4字节传递更快,且比指针看起来舒服


●返回值传递

使用引用传递,传递者无需知道接收者是以引用形式接收。C++也可以使用指针传递,但是接收者需要明确传过来的东西是一个指针,这明显没有引用方便。


返回值的传递也有值传递和引用传递之分,使用引用返回必须保证返回的不是局部变量,在函数外已经存在,或者是动态内存分配出来的空间,或者是在函数内部创建的static变量这些分配的空间的生命周期如果大于该函数,就可以使用引用传递。


●操作符重载

操作符重载关键字:operator


灰色部分:编译器处理的时候有隐藏的THIS,表示调用的左值C2,但是实际些代码的时候不能手动填写会报错。而非成员函数参数要写全


此处返回值不应是引用

你可能感兴趣的:(极客班第一周学习笔记)