序言
难得放暑假,回顾大一这一年所学到的东西,总觉的太繁杂。于是,决定用一个暑假来总结c++,java,android,linux,数据结构,数据库..........
1.类的声明与定义:
class A
{
.....
};
声明:
class A;
定义:
class A a;//类C风格
A b;
2.在类尚未完全定义前,我们可以声明指向该类类型的指针或引用。
class A;
A *a;
A &b;
.....
class A
{
.....
};
应用:
class A //相当于声明
{
private:
A *a;
};
3.指针类成员的访问;
class A
{
public:
int height;
};
A *p;
p->height;//等价于 (*p).height
4.类的定义不会引起内存分配,每个类对象都有自己的数据成员拷贝,但是,每个类成员函数和静态成员的拷贝只有一份。
5.在类内部定义的函数自动成为内联函数,在类外部必须显示用inline;外部定义的inline函数必须和头文件一起,或者在调用它的每一个cpp文件一起。
class A
{
public:
void f(){cout<<"hello"<<endl;}
void f1();
};
inline void A::f1(){cout<<"nihao"<<endl;}
6.const对象只能调用const成员函数(构造函数和析构函数除外),非const对象可调用const和非const成员函数。
7.const成员函数可以被相同参数表的非const成员函数重载。
class A
{
public:
class A
{
.....
};
声明:
class A;
定义:
class A a;//类C风格
A b;
2.在类尚未完全定义前,我们可以声明指向该类类型的指针或引用。
class A;
A *a;
A &b;
.....
class A
{
.....
};
应用:
class A //相当于声明
{
private:
A *a;
};
3.指针类成员的访问;
class A
{
public:
int height;
};
A *p;
p->height;//等价于 (*p).height
4.类的定义不会引起内存分配,每个类对象都有自己的数据成员拷贝,但是,每个类成员函数和静态成员的拷贝只有一份。
5.在类内部定义的函数自动成为内联函数,在类外部必须显示用inline;外部定义的inline函数必须和头文件一起,或者在调用它的每一个cpp文件一起。
class A
{
public:
void f(){cout<<"hello"<<endl;}
void f1();
};
inline void A::f1(){cout<<"nihao"<<endl;}
6.const对象只能调用const成员函数(构造函数和析构函数除外),非const对象可调用const和非const成员函数。
7.const成员函数可以被相同参数表的非const成员函数重载。
class A
{
public: