美文网首页
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