C++定义多个构造函数
C++中可以定义多个构造函数,每个构造函数可以有不同的参数列表,以便创建对象时可以使用不同的方式进行初始化。以下是一个示例:
#include <iostream>
class Person {
public:
Person() {
std::cout << "Default constructor called." << std::endl;
}
Person(std::string name) {
std::cout << "Constructor with name parameter called." << std::endl;
this->name = name;
}
Person(std::string name, int age) {
std::cout << "Constructor with name and age parameters called." << std::endl;
this->name = name;
this->age = age;
}
std::string getName() {
return name;
}
int getAge() {
return age;
}
private:
std::string name;
int age;
};
int main() {
Person p1;
Person p2("John");
Person p3("Mary", 25);
std::cout << "p1 name: " << p1.getName() << ", age: " << p1.getAge() << std::endl;
std::cout << "p2 name: " << p2.getName() << ", age: " << p2.getAge() << std::endl;
std::cout << "p3 name: " << p3.getName() << ", age: " << p3.getAge() << std::endl;
return 0;
}
输出:
Default constructor called.
Constructor with name parameter called.
Constructor with name and age parameters called.
p1 name: , age: 0
p2 name: John, age: 0
p3 name: Mary, age: 25
注意,如果没有为类定义任何构造函数,则会自动生成一个默认构造函数。如果定义了一个参数化构造函数,则默认构造函数将不再存在,除非另外定义一个无参构造函数。在这种情况下,必须使用初始化列表来初始化类成员,否则它们将具有不确定的值。
原文地址: https://www.cveoy.top/t/topic/bygt 著作权归作者所有。请勿转载和采集!