构造函数参数默认值编译失败
Create a class and set values to the private data members using a default, parameterized and copy constructor in C++.
使用C ++中的默认,参数化和复制构造函数创建一个类并为私有数据成员设置值 。
This is an example of C++ constructors, here we have a class named person and private data members name and age. In this example, we will set values to name and age through the default, parameterized and copy constructors.
这是C ++构造函数的示例,这里有一个名为person的类,私有数据成员name和age 。 在此示例中,我们将通过默认,参数化和复制构造函数将值设置为name和age 。
Here, we will create three objects p1, p2 and p3. p1 will be initialized with a default constructor, p2 will be initialized with a parameterized constructor and p3 will be initialized with the copy constructor.
在这里,我们将创建三个对象p1 , p2和p3 。 p1将使用默认构造函数初始化, p2将使用参数化构造函数初始化, p3将使用复制构造函数初始化。
Program:
程序:
#include <iostream>
#include <string.h>
using namespace std;
class person{
private:
char name[30];
int age;
public:
//default constructor
person(){
strcpy(name,"None");
age = 0;
}
//parameterized constructor
person(char n[], int a){
strcpy(name, n);
age = a;
}
//copy constructor
person(person &p){
strcpy(name, p.name);
age =p.age;
}
//function to display person details
void print(void){
cout<<name<<" is "<<age<<" years old."<<endl;
}
};
//Main function
int main(){
//creating objects
person p1; //default constructor will be called
person p2("Amit Shukla",21); //parameterized constructor will be called
person p3(p2); //copy constructor will be called
//printing
cout<<"object p1..."<<endl;
p1.print();
cout<<"object p2..."<<endl;
p2.print();
cout<<"object p3..."<<endl;
p3.print();
return 0;
}
Output
输出量
object p1...
None is 0 years old.
object p2...
Amit Shukla is 21 years old.
object p3...
Amit Shukla is 21 years old.
构造函数参数默认值编译失败