标题:一边擦着大鼻涕一边学习C++
关键词:类的公有,私有与保护
内容
A. 一句话概括今日目标完成情况
(a)9.4的学习 80%
(b)搞懂闹钟函数 100&
B.具体内容
学习了private,publie,protected仨的区别。private是完全封闭的,而public是完全开放的,protected是介于两者之间的。
公有成员是外界可以直接访问,修改数据的。私有成员不可以,只有通过类中公有函数对数据进行修改,从而达到了数据的安全性。
保护成员换句话说是某些数据或函数成员在类外备有限制的访问。
c9lss time
{
private:
int hour,minute;
protected:
int second;
...
}
class date:public time
{
private:
int year,month,day;
public:
void show_date_time()
{
cout<<year<<"-"<<month<<"-"<<day<<"\t";
cout<<hour<<":"<<minute<<":"<<second<<endl;
}
...
}
由于上面的hour和minute是在private里面定义的所以显然是不能被修改的。而second则由于是在protected下被定义的,所以可以修改访问的。
在9.4后半部分的分数函数时,非常仔细的听讲但还是疑惑满满
#include<iostream>
#include<cmath>
using namespace std;
class Fraction
{
protected:
int a;
private:
int b;
int divisor(int p,int q);
public:
void set(int aa,int bb);
void show();
Fraction add(Fraction u);
};
void Fraction::set(int aa,int bb)
{
a=aa;
if(bb!=0)
b=bb;
else{
a=0;
b=1;
}
}
void Fraction::show()
{
cout<<a<<"/"<<b;
}
Fraction Fraction::add(Fraction u)
{
int tmp;
Fraction v;
v.a=a*u.b+b*u.a;
v.b=b*u.b;
tmp=divisor(v.a,v.b);
v.a=v.a/tmp;
v.b=v.b/tmp;
return v;
}class Real:public Fraction
{
public:
void show_real()
{
cout<<a<<"/"<<b<<"="<<a/(double)b<<endl;
}
};
int main()
{
Real f1,f2,f3;
int a,b,c,d;
cout<<"\n请分别输入两个分数的分子和分母为0时退出\n";
cin>>a>>b;
cin>>c>>d;
f1.set(a,b);
f2.set(c.d);
f1.show_real();
f2.sjow_real();
cout<<endl;
}
这是我的初稿,但是是有问题的。编译时会遇到我的b是private的所以不允许我来定义。还是需要火候啊
C.明日计划
把9.4搞清楚就行。
我的博客:http://blog.csdn.net/andr3zzzz