类的成员属性私有化
#include <iostream>
#include <string>
using namespace std;
//成员属性设置为私有
//1.可以自己控制读写权限
//2.对于写可以检测数据的有效性
//设置人类
class Person
{
//定义姓名 可读可写
string m_Name;
//定义年龄 只读
int m_Age;
//定义情人 只写
string m_Lover;
public:
//设置姓名
void setName(string name)
{
m_Name = name;
}
//获取姓名
string getName()
{
return m_Name;
}
//读年龄
int getAge()
{
m_Age = 18;
return m_Age;
}
//写入情人
void setLover(string lover)
{
m_Lover = lover;
}
};
int main()
{
Person p;
//写入姓名
p.setName("张三");
//读出姓名
cout << "姓名为:" << p.getName() << endl;
//读年龄
//p.setAge(18)//不可以实行,因为未定义
cout << "年龄为:" << p.getAge() << endl;
//写情人
p.setLover("李四");
//cout<<"情人为:"<<p.getLover()<<endl;//不可行,因为情人只能写;
return 0;
}
类的构造函数和析构函数
#include <iostream>
using namespace std;
class Person
{
public:
//构造函数
//1.没有返回值,不用写void
//2.函数名称与类名相同
//3.构造函数可以在()有参数,因此可以发生重载
//4.程序在调用对象时候会自动调用构造,无须手动调用,而且只会调用一次
Person()
{
cout << "Person的构造函数的调用" << endl;
}
//析构函数
//1.没有返回值,不用写void
//2.函数名称与类名相同,在前面加上~
//3.构造函数不可以在()有参数,因此不可以发生重载
//4.程序在对象销毁前会自动调用析构,无须手动调用,而且只会调用一次
~Person()
{
cout << "Person的析构函数的调用" << endl;
}
};
void test01()
{
Person p;
}
int main()
{
Person p;
system("pause");//有了pause,输出只有构造函数,在这个return0,走完后,才会有析构函数的出现,但是没有pause,两个都会调用
return 0;
}