简单的发布bat 与 基类的虚析构函数
2016-07-28 15:18
260 查看
开发环境与发布环境隔离开。
每次在开发环境测试没有问题后,再发布到发布环境。
直接使用简单的脚步:
大致功能:
1. 修改数据库连接文件。(或其他配置文件)
2. copy发布。
3. 标记发布时间。
mark下,基类虚的析构函数。
当一个类打算被用作其它类的基类时,它的析构函数必须是虚的。考虑下面的例子:
class A
{
public:
A() { ptra_ = new char[10];}
~A() { delete[] ptra_;} // 非虚析构函数
private:
char * ptra_;
};
class B: public A
{
public:
B() { ptrb_ = new char[20];}
~B() { delete[] ptrb_;}
private:
char * ptrb_;
};
void foo()
{
A * a = new B;
delete a;
}
在这个例子中,程序也许不会象你想象的那样运行,在执行delete a的时候,实际上只有A::~A()被调用了,而B类的析构函数并没有被调用!这是否有点儿可怕?
如果将上面A::~A()改为virtual,就可以保证B::~B()也在delete a的时候被调用了。因此基类的析构函数都必须是virtual的。
每次在开发环境测试没有问题后,再发布到发布环境。
直接使用简单的脚步:
大致功能:
1. 修改数据库连接文件。(或其他配置文件)
2. copy发布。
3. 标记发布时间。
rename tms\conn.php conn.php.demo rename tms\conn.php.tms conn.php XCOPY tms ..\tms /E/Y rename tms\conn.php conn.php.tms rename tms\conn.php.demo conn.php COPY tms\login.html+ echo "发布成功!" pausecopy **+会修改该文件时间属性,然后页面可以获取并展示当前发布时间。
<pre name="code" class="html"><div style="width:300px;margin: 0 auto;color: #6e7b8b"> 发布于<script language=JavaScript>document.write( " "+ document.lastModified + " @James")</script> </div>
mark下,基类虚的析构函数。
当一个类打算被用作其它类的基类时,它的析构函数必须是虚的。考虑下面的例子:
class A
{
public:
A() { ptra_ = new char[10];}
~A() { delete[] ptra_;} // 非虚析构函数
private:
char * ptra_;
};
class B: public A
{
public:
B() { ptrb_ = new char[20];}
~B() { delete[] ptrb_;}
private:
char * ptrb_;
};
void foo()
{
A * a = new B;
delete a;
}
在这个例子中,程序也许不会象你想象的那样运行,在执行delete a的时候,实际上只有A::~A()被调用了,而B类的析构函数并没有被调用!这是否有点儿可怕?
如果将上面A::~A()改为virtual,就可以保证B::~B()也在delete a的时候被调用了。因此基类的析构函数都必须是virtual的。
相关文章推荐
- 杭电1050解题报告
- 如何搭建本地的Web测试环境
- 你也可以浪漫----倾情奉献一份你值得拥有的浪漫网站(情人节快来了~)
- c++中的继承的讲解
- Extjs的GridPanel分页前后台完整代码实例
- python处理浏览器URL编码
- 快速Android开发系列网络篇之Retrofit
- 计算UILabel的高度
- android Fragments详解四:管理fragment
- 创建子进程和程序替换
- 以写代学: python 模拟用户注册或登录账号
- Postgresql 行列转换函数
- 单例模式
- 【封装·继承·多态】个人通俗理解
- poj 1135 Domino Effect(最短路)
- MVC3/4/5/6 布局页及Razor语法及Route路由配置
- JAVA锁的膨胀过程和优化
- 微信公众号开发教程[016]-网页开发-样式库
- 深入理解分布式事务
- Spring+Mybatis整合