面试题答案
一键面试#include <iostream>
class Base {
public:
// 默认构造函数
Base() {
std::cout << "默认构造函数被调用" << std::endl;
}
// 带一个参数的构造函数
Base(int a) {
std::cout << "带一个参数的构造函数被调用,参数a: " << a << std::endl;
}
// 带两个参数的构造函数
Base(int a, int b) {
std::cout << "带两个参数的构造函数被调用,参数a: " << a << ", 参数b: " << b << std::endl;
}
};
int main() {
// 调用默认构造函数创建对象
Base obj1;
// 调用带一个参数的构造函数创建对象
Base obj2(10);
// 调用带两个参数的构造函数创建对象
Base obj3(10, 20);
return 0;
}
构造函数的调用顺序:
- 当执行
Base obj1;
时,调用默认构造函数。 - 当执行
Base obj2(10);
时,调用带一个参数的构造函数。 - 当执行
Base obj3(10, 20);
时,调用带两个参数的构造函数。 每次创建对象时,对应的构造函数会立即被调用,根据对象创建的表达式匹配并调用相应的构造函数。