面向对象的基本思想:
以谁做什么来表达程序的逻辑,以对象为中心,对象的所有行为都通过调用自己的函数来完成。体现在代码层面就是数据成员调用自己的函数以及通过函数来对自己进行操作.
封装的好处:
1.可以在成员函数中做一些必要的限制
2.有时候确实不允许用户改变数据成员
3.对数据的封装一般用set来对函数赋值 get函数用来读取数据成员
1.类的写法一般是public写在前面,private写在后面
2.建议定义私有成员时命名为 m_数据类型+成员名
如:string m_strName 以便区分数据成员,知道数据成员是定义在类里面的
形参是_+成员名,如:voidgetName(string _name)
3.只读:初始化,只有get函数,不设置set函数。
#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
/*
数据的封装
定义一个student类,含有如下信息:
1.姓名 name
2.性别 gender
3.学分(只读) score
4.学习 study
*/
class Student
{
public:
void setName(string _name)
{
m_strName=_name;
}
string getName()
{
return m_strName;
}
void setGender(string _gender)
{
m_strGender=_gender;
}
string getGender()
{
return m_strGender;
}
int getScore()
{
return m_iScore;
}
void iniScore()
{
m_iScore=0;
}
void study(int _score)
{
m_iScore+=_score;
}
private:
string m_strName;
string m_strGender;
int m_iScore;
};
int main()
{
Student stu;
stu.iniScore();
stu.setName("zhangsan");
stu.setGender("女");
stu.study(5);
stu.study(3);
cout<<stu.getName()<<","<<stu.getGender()<<","<<stu.getScore()<<endl;
return 0;
}
zhangsan,女,8