一般的头文件的布局:
#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.同理返回值的传递最好也是通过引用来传递,但当返回的是局部变量时不能使用引用来返回值;