一个类的对象的初始化和清理总是伴随着构造函数和析构函数,下面让我来聊聊我对其的理解,以及我书写时的一些错误。
首先究其概念而言,构造函数应是写在一个类的内部的,伴随着类的对象的创造和清楚而出现。
其次书写构造函数时和析构函数时一定要把他们同时放在public权限区,否则将无法使用创造这一类的对象,因为任何一个类的创造都伴随这构造函数的调用,如果你不让外部访问这个函数,那就不能创建这一类的对象,类的清除也伴随着析构函数,理由同上。
#include<iostream>
using namespace std;
class Person {
//将两个函数均放在公共权限中
public:
Person() {
cout << "这里是person的构造函数" << endl;
}
//private://将任意一个放在外界不可访问的区域都是不能成功创建类的对象的
~Person() {
cout << "这里是person的析构函数" << endl;
}
};
int main() {
Person p;
return 0;
}
然后因为构造函数是能够定义形参的,所以当你定义了一个形参时,那么当你创建这一类的对象时,你也必须相应的传入对应类型的实参,例如构造函数为Person(int a)那么定义的时候应该Person p(1);
#include<iostream>
using namespace std;
class Person {
//将两个函数均放在公共权限中
public:
Person(int a) {
cout << "这里是person的构造函数" << endl;
}
~Person() {
cout << "这里是person的析构函数" << endl;
}
};
int main() {
//当构造函数有形参是,创造的对象必须也传入相同类型的参数才能成功创造
//Person p;//无法创造对象
Person p(1);
return 0;
}
总而言之,类的构造和清除总是伴随着构造函数和析构函数,所以只有当一个类的构造函数和析构函数同时满足运行条件是,这个类才能成功创建对象。
初学有感,欢迎指正!!