#include <iostream>
#include <string>
using namespace std;
class Human
{
private:
string name;
int age;
public:
Human(string humansName /*= "Adam"*/, int humansAge /*= 25*/)
{
name = humansName;
age = humansAge;
cout << "Overloaded constructor creates " << name;
cout << " of age " << age << endl;
}
void IntroduceSelf()
{
cout << "I am " + name << " and am ";
cout << age << " years old" << endl;
}
};
int main()
{
Human firstMan("Adam", 25);
Human firstWoman("Eve", 28);
firstMan.IntroduceSelf();
firstWoman.IntroduceSelf();
}
可以改成:
......
public:
Human(string humansName = "Adam", int humansAge = 25)
:name(humansName), age(humansAge) 这就是初始化列表,和上面代码的意义相同
{
cout << "Constructed a human called " << name;
cout << ", " << age << " years old" << endl;
}
};
.......
初始化列表就是简写