美文网首页
云课堂C++开发工程师(一)

云课堂C++开发工程师(一)

作者: mengkui | 来源:发表于2016-05-15 12:17 被阅读0次

    ————————2016.5.15更新:忘了提交作业,以后一定要记得————————

    侯捷大师关注以下几点:


    4.1 数据一定放在private;

    4.2 参数尽可能pass by reference,看状况加const;

    4.3 返回值尽量pass by reference;

    4.4 类的本体中尽量加const,避免报错;

    4.5 构造函数尽量写初值列initialization list;

    C与C++区别


    C语言包含变量函数,其中数据都是全局的,可以被所有函数调用。

    C++将数据和函数包在一起,通过面向对象的方式,来划分变量和函数的使用范围。

    这两周的课程主要讲解两种类:复数——不带指针的类object based,字符串——带指针的类object oriented。

    C++编译基本形式


    C++由头文件和实现文件组成,头文件用于声明函数和变量,头文件一般是.h结尾,实现文件一般是.cpp结尾。但是这些不是强制性的,也就是说头文件可以不是.h结尾。

    防卫式声明


    防卫式声明可以避免重复include的动作:

    #ifndef    __MYFUNCTION__

    #define   __MYFUNCTION__

    \\0.前置声明,1.类声明,2.类定义

    #endif

    语法(public / private)


    \\class head

    class complex

    \\class body

    {

    public:

    构造函数

    运行:cout<<c1.function();

    private:

    声明数据,但是不可以被调用

    友元函数

    protected:

    }

    模板class template


    在类中(private)定义一个未知类型“T”,在定义时被指定不同的数据类型。

    内联函数inline


    内联函数运行比较快,可以在本体内(public)定义,可以在本体外定义inline “function”。

    构造函数constructor


    构造函数和类名称相同,拥有参数,也可以有默认实参default argument,没有返回值类型。

    初值列initialization list效率高:

    complex (double r=0, double i=0): re(r), im(i) {}

    重载overloading


    3.1 函数名称相同,但是参数不同,可以重载,比如一个赋值函数和一个取值函数。

    3.2 函数重载常发生在构造函数。

    3.3 但是函数名称相同,有默认参数和无参数的两个函数不能重载。

    创建对象时会调用构造函数


    complex c1(1,2);

    complex c2;

    动态创建复数得到指针

    complex* p = new complex(1,2);

    析构函数(不带指针的类不需要)


    私有区的构造函数-单例singleton


    不允许外界创造对象,我们可以在类内部实例化一个对象,并将对象设置为static,这样的话,我们可以得到一个单例。

    常量成员函数constant member function


    函数不改变数据的函数要加const,在小括号后大括号前加const。

    变量前const指其不能改变变量。

    参数传递


    pass by value || pass by reference (to const)

    尽量传引用,包括参数传递和返回值类型:引用在底部就是指针,传递一样快,四个字节。

    如果不希望函数改变引用的参数,需加const!!!

    友元函数friend


    声明在private中,定义在本体外可以直接拿其中的私有值:ths->c1.re。

    本体外其他函数必须通过取值函数等函数拿私有值。

    本体内的函数可以直接拿私有值c1.re,因为本体内相同class 的哥哥objects 互为friend。

    class body 外的各种定义definitions


    什么情况下可以pass by value,什么情况下可以pass by reference

    函数必须创建地方来放--pass by value,其他可以pass by reference

    操作符重载


    重新定义其他类型数据的运算(+,+=),可以写成:

    1.类内的成员函数,可以直接使用private数据,成员函数都带有隐藏参数this,但是不要在参数列写出来

    2.本体外的非成员函数,

    复习课


    评分标准


    相关文章

      网友评论

          本文标题:云课堂C++开发工程师(一)

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