1、成员属性设置为私有
优点1:将所有成员属性设置为私有,可以自己控制读写权限
优点2:对于写权限,我们可以检测数据的有效性
class Person {
public:
//姓名设置可读可写
void setName(string name) {
m_Name = name;
}
string getName()
{
return m_Name;
}
//获取年龄
int getAge() {
return m_Age;
}
//设置年龄
void setAge(int age) {
if (age < 0 || age > 150) {
cout << "你个老妖精!" << endl;
return;
}
m_Age = age;
}
//情人设置为只写
void setLover(string lover) {
m_Lover = lover;
}
private:
string m_Name; //可读可写 姓名
int m_Age; //只读 年龄
string m_Lover; //只写 情人
};
int main() {
Person p;
//姓名设置
p.setName("张三");
cout << "姓名: " << p.getName() << endl;
//年龄设置
p.setAge(50);
cout << "年龄: " << p.getAge() << endl;
//情人设置
p.setLover("苍井");
//cout << "情人: " << p.m_Lover << endl; //只写属性,不可以读取
system("pause");
return 0;
}
2、设计立方体类
设计立方体类(Cube)
求出立方体的面积和体积
分别用全局函数和成员函数判断两个立方体是否相等。
#include<iostream>
using namespace std;
class Cube
{
public:
//设置长
void setLong(int l)
{
m_L = l;
}
//获得长
int getLong()
{
return m_L;
}
//设置宽
void setWith(int w)
{
m_W = w;
}
//获得宽
int getWith()
{
return m_W;
}
//设置高
void setHigh(int h)
{
m_H = h;
}
//获得高
int getHigh()
{
return m_H;
}
//获得面积
int calculateS()
{
return 2 * m_L * m_H + 2 * m_L * m_W + 2 * m_W * m_H;
}
//获得体积
int calculateV()
{
return m_L * m_H * m_W;
}
//判断是否相等
bool isSameByClass(Cube& c)
{
if (m_H == c.getHigh() && m_L == c.getLong() && m_W == c.getWith())
{
return true;
}
return false;
}
private:
int m_L;//长
int m_W;//宽
int m_H;//高
};
bool isSame(Cube& c1, Cube& c2)
{
if (c1.getHigh() == c2.getHigh() && c1.getLong() == c2.getLong() && c1.getWith() == c2.getWith())
{
return true;
}
return false;
}
int main()
{
Cube c1;
c1.setLong(10);
c1.setWith(10);
c1.setHigh(10);
cout << "面积是:" << c1.calculateS() << endl;
cout << "体积是:" << c1.calculateV() << endl;
Cube c2;
c2.setLong(10);
c2.setWith(10);
c2.setHigh(10);
bool ret = isSame(c1, c2);
if (ret)
{
cout << "c1和c2相等" << endl;
}
else
{
cout << "c1和c2不相等" << endl;
}
bool ret1 = c1.isSameByClass(c2);
if (ret1)
{
cout << "c1和c2相等" << endl;
}
else
{
cout << "c1和c2不相等" << endl;
}
system("pause");
return 0;
}