constrctor overload
时间: 2024-09-27 17:02:55 浏览: 20
构造函数重载(Constructor Overloading)是指在一个类中定义两个或更多的同名构造函数,但它们有不同的参数列表或参数类型。这种设计允许程序员根据需要提供多种初始化该类对象的方式,可以根据传入的不同参数值来创建具有不同属性的对象实例。每个构造函数会根据传递给它的参数自动执行,无需显式指定。
例如:
```java
class Person {
String name;
int age;
// 构造函数重载,接受名字作为参数
public Person(String name) {
this.name = name;
age = 0; // 默认年龄为0
}
// 另一种构造函数,接受名字和年龄
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
// 使用时可以选择合适的构造函数
Person p1 = new Person("Alice"); // 使用第一个构造函数,age默认为0
Person p2 = new Person("Bob", 30); // 使用第二个构造函数,明确设置age为30
```
相关问题
Please define a class named Student ,which include two properties (name,age) and a const member sno, also having member functions: 1) A constructor with parameters to initialize the data members. (5 points) 2) The copy constrctor. (5 points) Please declare a class named CoStudent, which is a kind of student. The class should have a constructor at last, which should be defined properly. (5 points)
下面是定义一个名为 Student 的类的代码:
```
class Student {
public:
Student(string name, int age) : name_(name), age_(age) {}
Student(const Student &s) : name_(s.name_), age_(s.age_) {}
string name_;
int age_;
static const int sno_ = 1001;
};
class CoStudent : public Student {
public:
CoStudent(string name, int age, int score) : Student(name, age), score_(score) {}
int score_;
};
```
阅读全文