这两周以来还是学到了很多专业知识的。c++面向对象程序设计的一些知识,python的基本知识,以及docker的基本知识。
c++面向对象程序设计已经开课4周吧,但是总感觉之前的课有点“水”......所谓“水”是指课上并没有教太多的技术,而更多的是概念。比方说什么是“封装”,“继承”,“多态”等等。但是只知道这些并不能进行程序设计,而需要具体实现这些概念的技术。这一周以来的学习的overriding和overload就可以实现多态这一概念。overload的概念在上学期就接触过,这里不写了。overriding是指在某一父类中定义函数名,而具体到不同的子类这可以拥有该同名函数但却允许各个不同的对象定义不同的函数体。
如定义动物这个类,其中拥有run这个方法:
class animal
{
public run()
};
对于具体的子类可以有不同的函数体:
class cat:animal
{
public run()
{
cout<<"I can run fast"<<endl;
}
};
class turtle:animal
{
public run()
{
cout<<"I can run slow"<<endl;
}
};
还有关于运算符重载的技术。个人认为运算发重载的优点在于可以提高程序编写效率。如定义一个平面上的点的类:
class point
{
int x;
int y;
point (int a, int b)
{
*this.a=a;
*this.b=b
}
}
现在如果想让两个点相等,需要进行如下操作:
point a(1,2);
point b;
b.x=a.x;
b.y=a.y;
如果有很多这样的点需要进行这种操作那就显得很麻烦了,因此我们可以运算符重载来提升效率。
point operator=(const &b)
{
*this.x=b.x;
*this.y=b.y;
return *this;
}
这样一来如果操作1000个点我们都可以用1000个“=”运算符来搞定了。
接下来是一些关于dockers的概念。docker:用来装虚拟机的容器管理工具,它提供了一个工具,可以安装,启动,删除你的虚拟机(就是那些容器)laradock:laravel这个框架为了方便广大docker用户,自己研究的一套镜像,这套镜像包含了nginx服务器,php,mysql等一系列的一个网站需要的镜像,实现了一键安装,而且对这些镜像进行了优化和配置,使得laravel可以直接运行在上面而不必配置其他的东西了。