美文网首页
GeekBand class1

GeekBand class1

作者: 0ffa31abb8f8 | 来源:发表于2016-10-01 15:07 被阅读0次


    一般的头文件的布局:


    #ifndef _NAME_

    #define_NAME_         \\防卫式声明

    #include<使用到的头文件>

    class A;     \\前置声明

    class A{......};         \\类的声明

    A::function(){}         \\类中成员函数的类外定义

    #endif


    一般的class定义的布局:

    class A {

    private:                   \\私有成员

            int x,y;         \\私有数据成员

           friend B();      \\友元函数的声明,友元函数可以访问类中的数据

    public:                  \\公有成员

          A(int a,int b):x(a),y(b){}        \\类初始化列

         A& operator +=(const A&);    \\运算符重载声明

    };

    class定义布局使用模板:

    template<typename T>

    class A{

    private:

         T x,y;

    public:

      A(T a,T b):x(a),y(b){}

      A& operator +=(const A&);

    };

    int main(){

    A<int> a1(1,2);

    A<float> a2(1.0,2.0);             \\通过使用模板使不同类型的类的使用更方便

    return 0;

    }

    类外函数定义的布局:

    inline A& A::operator +=(const A&){

    this->x+=r.x;

    this->y+=r.y;

    return *this;

    }

    tips:

    1.相同class的各个对象互为友元;

    2.可以有多个参数设定不同的操作符重载;

    3.static静态成员可以在类中被任意成员访问;

    4.const成员在被引用后不会改变原来的值;

    5.参数的传递最好以引用的方式传递,这样可以提高效率,C++是一种注重效率的语言;

    6.同理返回值的传递最好也是通过引用来传递,但当返回的是局部变量时不能使用引用来返回值;

    相关文章

      网友评论

          本文标题:GeekBand class1

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