标题:到底该做些什么来拯救缺失的进取心?
关键词:对象与指针
内容
A. 一句话概括今日目标完成情况
(a)搞懂10.4程序运行时程序停止运行的问题。 100%
(b)10.6、10.7的学习 100%
B.具体内容
(a)和王子昂同学研究了一下昨天那个程序的问题。问题出在了num10数组里面应该加一个十号元素。哦不,实际上是第二个位置少了一个“ ”,空白的字符。否则当b=30+的时候,b/10=3,那么取的实际上是是num10数组里的第四个元素,也就是forty,当取到最后一个第十个的时候,由于整个num10数组里只有九个元素的缘故,就会出错,导致程序停止运行了。
(b)10.6的实例呢,讲的是一个person类函数。写完之后发现第十周的内容都在极大量极频繁地应用析构函数和动态申请。而且一写程序就要编一大堆花里胡哨的英文名,每个还要起好几个格式以应用在不同的函数里。第十章这几个实例可以发现其实都差不多,都属于换汤不换药的那种,其实基本的知识点的都是一样的。代码就不贴在这里了。
10.7讲这个对象与指针,可以用来进行动态存储。也是这种new和delete的用法。
至于在之前几个例子中间都使用了指向对象的指针,理由应该是尽可能少地消耗内存空间的大小,减小系统的损耗并提高程序运行的效率。我认为应该在有条件的情况下尽可能多得使用这种指向对象的指针。
发奋图强,加快进度。学习10.8啦啦啦!this指针~
我的天看到这个Test的声明的时候很害怕:
class Test
{
private:
int x;
public:
Test(int=0);
void print();
};
这个老师真是的,用了Test(int=0)也不能介绍一下。搞得我以为他又写错了。问了一下百度,int=0的意思是赋予int整型值的默认参数是0.
而这个测试三种输出方式的要遵循局部优先的原则
void Test::print()
{
int x=13;
cout<<" x="<<x<<endl;
cout<<" this->x="<<this->x<<endl;
cout<<"(*this).x="<<(*this).x<<endl;
}
依次输出13,12,12.
而第二个例子里面的当类中数据成员名与成员函数中的形参名相同时,用this指针加加以区分。
再后面的日期类定义。闰年判断方法专门上网查了一下:百年不闰,四百年再闰。如下:
bool Date::IsLeapYear()
{
if(year%400==0||(year%100!=0&&year%4==0)){
return true;
}
else{
return false;
}
}
这个也很简单。不过让我困惑的是老师为什么要在头文件里加上include<cmath>,这个程序并不需要这个头文件啊?老师是不是想多了。
我写完这个代码之后,觉得这个只是检测自己提前设置好的日期,很不人性化。所以我把主函数改了一下,这样可以让用户自己输入日期然后来输出
int main()
{
Date date;
int a,b,c;
cout<<"Please input the date: "<<endl;
cin>>a>>b>>c;
date.SetDate(a,b,c);
cout<<"两种输出格式如下:"<<endl;
date.print_ymd();
date.print_mdy();
cout<<endl;
cout<<"Thanks for using!";
return 0;
}
10.10中
this非常像日常生活中的“我“。我的x,我的y,我的滑板鞋。
这个this呢,没事儿的时候没必要乱写,就像老师说的,你没必要一直我我我我的,只有发生冲突时才有必要用this来确认。
this是指针,*this就是本对象
C.明日计划
(a)复习之前所学
(b)学习11.1、11.2
我的博客:http://blog.csdn.net/andr3zzzz