美文网首页C++学习笔记
GeekBand面向对象高级编程(上)第一周

GeekBand面向对象高级编程(上)第一周

作者: 舌尖上的搬砖汉 | 来源:发表于2016-05-15 01:11 被阅读23次

    C++简介:

                C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛;C++支持多种编程范式 --面向对象编程泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。[1]其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性

    头文件与类的声明: 

    ---Header(头文件)的布局

    (以课程为例)

    #ifndef _COMPLEX_   //防卫式声明

    #define _COMPLEX_

    #include<iostream>//前置声明

    class Complex{  //类声明

    //class body

    public://访问级别  包含public private  protect,             //这里未介绍第三个

          //成员函数

    private:

    //数据成员

    };

    #endif 

    构造函数:

    当一个类常见对象时自动调用的函数 ,当一个类的都早函数未定义是编译器会西东生成一个构造函数。构造函数没有返回值类型,可以有不同的参数列表(构造函数重载) 

    class  Complex{

    publlic:

    Complex();

    Complex(int a,int b);

    ~Complex();//当然存在析构函数用来释放对象所使                      //用的内存空间

    private:

    //....

    }

    参数传递与返回值:

    参数:

    参数的书写要完整,良好的书写风格赢不胜罗参数的名字

    void setValue(int w,int h)//良好的风格

    void setValue(int ,int )//不良的风格

    参数命名要恰当,顺序合理;

    如果输入参数是指针且仅作输入用,则应在参数类型前加const

    void StringCopy(char* str,const char* strsorce)

    如果输入参数咦值传递的方式传递对象,则应用“const&"方式来传递构造和析构过程,从而提高效率。

    返回值:

    如果返回的是哟个对象,有些场合用“引用传递”替换“值传递”可以提高效率。

    class comples{

    public:

    complex(double r=0,double i=0){};

    complex& operator += (const complex&);

    double real() const{return re;}

    关于友元函数:

    友元函数是指某些虽然不是成员却能够访问类的所有成员的函数。类授予它的友元特别的访问权。

    使用关键字:firend

    相同的class的各个objects互为friends(友元)

    class complex

    {

    public:

    complex();

    int func();

    };

    {complex c1;

    complex c2;

    c2.func(c1);

    }

    操作符的重载与临时对象:

    operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。

    运算符重载分为成员函数重载和友元函数重载两种。

    成员函数重载:

    inline complex& 

    complex::operator+= (this,const complex& r){

    return ...

    }

    友元函数重载:

    friend operator +=( const complex& x,const complex& y){

    ...

    }


    临时对象(temp object):

    1.用构造函数作为隐式类型转换函数是,会自动创建对象。

    2.建立一个无名对象是会产生临时对象。

    3.函数返回一个对象值时,会产生临时对象,函数中的返回值会以值拷贝的形式拷贝到被调函数栈中的一个临时对象。

    同时

    inline complex

    operator+ (const complex& x, const complex& y){

    return  ...}

    inline complex operator +(const complex& x,double y){}

    不可return by reference ,因为它们返回的必定是local boject.

    整理自《C++面向对象程序设计》

    相关文章

      网友评论

        本文标题:GeekBand面向对象高级编程(上)第一周

        本文链接:https://www.haomeiwen.com/subject/rxadrttx.html