大家好,今天主要和大家聊一聊,C++里面的基本语法结构以及对应的操作方法。
目录
第一:构造函数与析构函数
第二:this指针
第一:构造函数与析构函数
什么是构造函数?构造函数在对象实例化时被系统自动调用,仅且调用一次,构造函数出现在哪里?前面学过类,实际上定义类时,如果没有定义构造函数和析构函数,编译器就会生成一个构造函数和析构函数,只是这个析构函数和构造函数什么事情也不做,所以我们不会关注到这一点。
构造函数的特点如下:
1、构造函数必须与类同名;
2、可以重载;
3、没有返回类型,即使是void也不行;
什么是析构函数?与构造函数相反,在对象结束其生命周期时系统自动执行析构函数。实际上定义类时,编译器会生成一个析构函数。
1、析构函数的格式为 ~类名();
2、调用释放内存(资源);
3、~类名()不能加参数;
4、没有返回值,即使void也不行
通过简单的例子来说明构造函数和析构函数的使用方法:
#include <iostream>
#include <string>
using namespace std;
class Dog
{
public:
Dog();
~ Dog();
};
int main()
{
Dog dog;
cout<<"构造与析构函数示例"<<endl;
return 0;
}
Dog::Dog()
{
cout<<"构造函数执行!"<<endl;
}
Dog::~Dog()
{
cout<<"析构函数执行!"<<endl;
}
分析:其实执行的结果可以预测,在对象实例化时会调用构造函数,所以构造函数先执行,然后再执行main()函数中的内容,继续执行cout<<"构造函数与析构函数",最后结束的时候运行析构函数。
第二:this指针
#include <iostream>
#include <string>
using namespace std;
class Dog
{
public:
string name;
void func();
};
int main()
{
Dog dog;
dog.func();
return 0;
}
void Dog::func()
{
this->name = "旺财";
cout<<"小狗的名字叫:"<<this->name<<endl;
}
分析:this只能能够在成员函数中使用,并可以指向自身数据。