#include <iostream>
using namespace std;
enum sexType
{
MAN,
WOMAN
};
class Human
{
//the default is private
private:
string name;
sexType sex;
int age;
//(5) 定义类常量: 一种方法是用enum,另一种方法是使用static
enum{LEN=1};
static const int LEN2 = 3;
public:
//如果类定义中没有提供任何构造函数,则编译器提供默认构造函数。但,如果类中定义了构造函数,那么编写者必须同时提供一个默认构造函数。
//有两种方法提供默认构造函数:
//(1) 定义一个没有参数的构造函数:Human();
//(2) 为非默认构造函数的参数提供默认值: Human(string m_name="no name", int m_age=0, sexType m_sex=MAN);
//两种定义方式只能二选一
Human();
Human(string m_name, int m_age, sexType m_sex);
Human(int m_age);
~Human();
//定义在类声明中的方法为内联方法。也可以使用inline关键字将函数定义在类声明外部。
void show() const //const加在函数名后面表示该函数不会修改该类的数据成员。
{
cout<<"This is "<<name<<", sex: "<<sex<<", "<<age<<" Years old."<<endl;
}
};
Human::Human()
{
cout<<"default construct function"<<endl;
}
Human::Human(string m_name, int m_age, sexType m_sex)
{
cout<<"construct function: "<<m_name<<endl;
name = m_name;
age = m_age;
sex = m_sex;
}
Human::Human(int m_age)
{
age = m_age;
}
Human::~Human()
{
cout<<"destroy function: "<<name<<endl;
}
int main()
{
cout << "This is test code of C++ class: "<< endl;
{
//(1) use of construct function
Human jack = Human("Jack", 30, MAN); //显示调用
Human jerry("Jerry", 26, MAN); //隐式调用
Human *pTom = new Human("Tom", 10, MAN); //New调用
//当构造函数只有一个参数时,可以直接用赋值语句赋值。只有一个参数的构造函数将会被自动调用
Human marry = 11; //赋值调用
//(2) defaults construct function
Human Lucy;
//(3) 赋值对象
Human James;
James = Human("James", 28, MAN); //创建一个临时对象James,copy一份儿该对象赋值给James变量。紧接着该临时对象会被销毁。
//(4) const
const Human Thomas("Thomas", 29, MAN);
Thomas.show(); //The show method must define with 'const'
}
return 0;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有