/* Human.h */
#include <string>
class Human {
private:
std::string name;
unsigned int age;
public:
/*构造函数与类同名,在创建对象时被调用,当没有定义构造函数时,系统将调用一个默认的构造函数
* 析构函数,在对象被销毁时调用
*/
Human(std::string str, unsigned int num);//带默认参数的重载构造函数, 只在声明的地方写值,定义的地方可以不写
Human::~Human();
void setName(std::string str);
};
/*Human.cpp*/
#include <iostream>
#include "Human.h"
Human::Human(std::string str, unsigned int num) : name(str), age(num) //初始化列表写在构造函数定义的地方
{
//name = str; //有个初始化列表,这里可删除,初始化列表不产生临时变量,
//age = num; // 而这里的赋值,产生临时变量,尽量使用初始化列表,来初始化变量
std::cout << "2 call Human(----) name = " << name << std::endl;
}
Human::~Human()
{
std::cout << "3 call ~Human() the name is " <