构造函数与析构函数
Test(); //无参
Test(int x,int y); //带参数,可初始化类内数据成员
Test(const Test*temp); //通过另一个类成员初始化该成员
析构函数于构造函数相对应,构造函数是对象创建的时候自动调用的,而析构函数就是对象在销毁的时候自动调用的的
特点:
1)构造函数可以有多个来构成重载,但析构函数只能有一个,不能构成重载
2)构造函数可以有参数,但析构函数不能有参数
3)与构造函数相同的是,如果我们没有显式的写出析构函数,那么编译器也会自动的给我们加上一个析构函数,什么都不做;如果我们显式的写了析构函数,那么将会覆盖默认的析构函数
inline
以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销, 内联函数提升程序运行的效率。
面向对象 栈
this指针
定义在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。
this是出现在方法内部,用户显式的调用对象的属性或方法
this只能在成员函数中使用 成员函数默认第一个参数为T* const register this。 (友元函数,全局函数不是成员函数)
this指针不能再静态函数中使用 静态函数如同静态变量一样,他不属于具体的哪一个对象,静态函数表示了整个类范围意义上的信息,而this指针却实实在在的对应一个对象,所以this指针不能被静态函数使用。
this指针的创建 this指针在成员函数的开始执行前构造的,在成员的执行结束后清除。
this指针只有在成员函数中才有定义。 创建一个对象后,不能通过对象使用this指针。也无法知道一个对象的this指针的位置(只有在成员函数里才有this指针的位置)。当然,在成员函数里,你是可以知道this指针的位置的(可以&this获得),也可以直接使用的。