创建一个People类,里面包含“名字”,“年龄”两个成员变量,以及这两个成员的get,set方法;要求用头文件+实现文件的标准格式实现,然后可以在main函数里直接创建People对象
第一步:创建控制台程序
#include"stdafx.h"
#include"People.h"
#include<iostream>
#include<string>
intmain(int argc, char* argv[])
{
printf("Hello World!\n");
return 0;
}
第二步:添加一个CPeople类,People.h中声明
#include<string>
usingnamespace std;
classCPeople
{
private:
string m_strName;
int m_iAge;
public:
CPeople();
CPeople(string strName,int iAge);
virtual ~CPeople();
string GetName() const;
void SetName(string strName);
int GetAge() const;
void SetAge(int iAge);
};
第三步: People.cpp中实现get,set函数
CPeople::CPeople()
{
m_strName = "";
m_iAge=0;
}
CPeople::~CPeople()
{
}
CPeople::CPeople(stringstrName,int iAge)
{
m_strName = strName;
m_iAge = iAge;
};
stringCPeople::GetName() const
{
return m_strName;
}
voidCPeople::SetName(string strName)
{
m_strName = strName;
}
intCPeople:: GetAge() const
{
return m_iAge;
}
voidCPeople::SetAge(int iAge)
{
m_iAge=iAge;
}
注意:变量是私有的,set、get函数是公有的。
第四步: 在主函数中实现对象
CPeople MrZhang; //定义对象
MrZhang.SetAge(15);
MrZhang.SetName("Wang er xiao");
cout<<"获奖对象是:"<<endl;
cout<<MrZhang.GetName()<<endl;
cout<<MrZhang.GetAge()<<endl;
注意,网友加的评论如下:
如果get()和set()方法里面只放一个赋值语句的话,和public变量应该没什么区别。
但是设想,如果你的变量score代表的是一个学生的数学成绩,理论上,分数只可能是0-100的整数,如果你把将score设为public,不用get()和set(),那么用户很可能会输入1-100以外的数字,如果你把将score设为privata,再用setScore()来设置分数,你就完全可以控制这种行为了
这个问题其实很简单,比如
setAge(int age){
if(age<1||age>120)
throw new Exception(" 你输入的年龄不合法");
}else{
this.age=age;
}