定义
构造函数(Constructor)是一种特殊的成员函数,用于在创建类的对象时初始化对象。它在对象被实例化时自动调用,负责为对象的成员变量(属性)赋初值、分配资源或执行必要的初始化操作。
特点
初始化对象:在创建类的实例(对象)时自动调用,用于设置对象的初始状态(如属性赋值)。
与类同名:构造函数的名称通常与类名相同。
无返回值:不需要显式返回类型(即使是 void
也不写)。
举例
#include <iostream>
#include <string>
using namespace std;
// Person类
class Person {
public:
string name; // 姓名
int age; // 年龄
Person(string name, int age) {
this -> name = name;
this -> age =age;
}
void showPerson() {
cout << name << " " << age << endl;
}
};
int main() {
string name;
int age;
cin >> name;
cin >> age;
Person p(name, age);
p.showPerson();
return 0;
}
相关知识点
this指针
在C++中,this
指针是一个隐含的指针,它指向当前对象的实例。
用途:
1.访问调用对象的成员变量和成员函数。
2.返回当前对象的引用或指针(如链式调用)。
3.在成员函数内部,区分成员变量和局部变量(如果它们同名)。
特性:
this指针只能在成员函数的内部使用,且由编译器自动传递,用户无需显式传递。
this指针不是对象的一部分,不影响对象的大小(即不影响sizeof运算符的结果)。
this指针在成员函数的调用期间始终有效,指向调用该函数的对象。
例子:
class Person {
public:
string name; // 成员变量(属于对象)
Person(string name) { // 参数名和成员变量名相同!
this->name = name; // this->name 是成员变量,name 是参数
}
};
this->name
:当前对象的 name
(成员变量)。
name
:构造函数的参数。