在 C++ 中,我们创建一个 类 时,会自动给我们添加一个跟类名一样的 函数,该函数没有任何的 返回值,且该函数不做任何操作,该函数被称为构造方法(或构造函数)。
构造方法用于创建对象时使用,每当创建一个类的实例对象时,C++ 解释器都会自动调用它。
C++ 中的构造函数,默认是没有任何 函数参数 的,但我们也可以重写该函数,为其设置任意多个和任意类型的参数,如果,我们在构造函数方法里设置了参数,那么我们在实例化类对象的时候,必须要传入相对应的参数。
C++ 的构造函数,跟普通的函数一样,也可以设置 默认参数,如果设置了默认参数,那么在实例话实例时,可以不传该参数,而使用默认值。
class Classname
{
public:
Classname(){}
};
C++ 构造方法的名字与类名完全一致,该函数默认没有任何参数,并且是自动调用,不需要我们手动调用。
为类添加构造函数
#include <iostream>
using namespace std;
class Student
{
public:
Student()
{
cout << "Call Student" << endl;
}
void sayHello()
{
cout << "Hello HaiCoder From C++ Class" << endl;
}
};
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
Student stu;
stu.sayHello();
Student stu1;
return 0;
}
程序运行后,控制台输出如下:
我们创建了一个类 Student,接着,我们为该类添加了一个构造函数和一个 sayHello 方法 ,最后,我们创建了两个 Student 类的实例。
我们看到,我们没有显式调用构造函数,但程序输出了两次 Call Student
,即我们每创建一次对象,系统会自动为我们调用一次构造方法。
构造函数可以接受参数
#include <iostream>
using namespace std;
class Student
{
public:
Student(string name, int age)
{
cout << "Call Student, Name is: " << name << " Age is: " << age << endl;
}
void sayHello()
{
cout << "Hello HaiCoder From C++ Class" << endl;
}
};
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
Student stu("HaiCoder", 109);
stu.sayHello();
return 0;
}
程序运行后,控制台输出如下:
我们创建了一个类 Student,接着,我们为该类添加了一个构造函数 Student,且该构造函数接受两个参数,即 name 和 age,最后,我们在创建 Student 类的实例的时候,我们必须要传入 nama 和 age 参数。
C++ 类的构造函数支持默认参数
#include <iostream>
using namespace std;
class Student
{
public:
Student(string name, int age = 18)
{
cout << "Call Student, Name is: " << name << " Age is: " << age << endl;
}
void sayHello()
{
cout << "Hello HaiCoder From C++ Class" << endl;
}
};
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
Student stu("HaiCoder", 109);
stu.sayHello();
Student stu1("Jobs");
return 0;
}
程序运行后,控制台输出如下:
这次,我们定义的 Student 类的构造函数的第二个参数带有了默认值,最后,我们在创建 Student 类的实例的时候,只传入了一个参数,age 参数使用默认值。
在 C++ 中,我们创建一个类时,会自动给我们添加一个跟类名一样的函数,该函数没有任何的返回值,且该函数不做任何操作,该函数被称为构造方法(或构造函数)。
构造方法用于创建对象时使用,每当创建一个类的实例对象时,C++ 解释器都会自动调用它。