查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

快乐的机器猫 大桥加加网易分站

要有更宽广的视野和胸怀

 
 
 
 
 
 

Qt中对象销毁的几种用法

2013-5-27 1:32:12 阅读773 评论0 272013/05 May27

1. 生成对象时指定了parent, 且此对象是QObject,则parent会接管此对象的销毁工作。
即只用new不用delete, 当parent在销毁时会自动将这个子对象进行合适的销毁。

由于自动销毁,至于如果使用deleteLater();这种重复删除,会不会和Qt自动销毁的机制有冲突?这个就没研究明白了。

2. 生成对象时使用了QPointer, 在删除时应使用
XX.deleteLater(); 并且之后的一条语句一定不要 用XX=NULL;(因为deleteLater()非阻塞,并非马上删除,此时如果置XX=NULL了,可能Qt发现已经是NULL将不再删除此对象,造成内存泄露)

3. 当使用普通的C++指针,请用传统的delete
if(NULL != XX) {delete XX;  XX = NULL;

作者  | 2013-5-27 1:32:12 | 阅读(773) |评论(0) | 阅读全文>>

可重入和线程安全的概念

2013-1-14 10:54:02 阅读248 评论0 142013/01 Jan14

可重入 一个类被称为是可重入的:只要在同一时刻至多只有一个线程访问同一个实例,那么我们说多个线程可以安全地使用各自线程内自己的实例。 一个函数被称为是可重入的:如果每一次函数的调用只访问其独有的数据(译者注:全局变量就不是独有的,而是共享的),那么我们说多个线程可以安全地调用这 个函数。 也就是说,类和函数的使用者必须通过一些外部的加锁机制来实现访问对象实例或共享数据的序列化。

线程安全
如果多个线程可以同时使用一个类的对象,那么这个类被称为是线程安全的

如果多个线程可以同时使用一个函数体里的共享数据,那么这个函数被称为线程安全的。
(译者注:

作者  | 2013-1-14 10:54:02 | 阅读(248) |评论(0) | 阅读全文>>

JAVA设计模式1 ---- 简单工厂模式 (以汽车工厂为例)

2012-7-11 11:08:56 阅读272 评论0 112012/07 July11

简单工厂模式的要素:
1 抽象产品: 有1个产品接口(抽象类)
2 具体产品: 有N件产品类来实现这个产品接口(或抽象类)
3 工厂角色: 有1个工厂 (Factory) 来生产产品(通过参数传递产品名称)

先来看Car这个接口:
public interface Car {
    public void run();
    public void stop();
}
很简单吧,注意接口是不能写实现的,否则不通过,它只是定义有什么功能,不管实现。
接下来创造2种 汽车, 克鲁兹(Cruze)和同悦(Tongyue)
//class Cruze
public class Cruze implements Car {

作者  | 2012-7-11 11:08:56 | 阅读(272) |评论(0) | 阅读全文>>

设计模式 之 单例模式简单例子(Java)

2012-7-5 13:58:18 阅读226 评论0 52012/07 July5

package com.stephen.javatest02;

public class MachineConfig {
    private static MachineConfig a = null;
    private String ServerIP="";
    private int ServerPort=0;

    private MachineConfig()
    {
    }
    
    public String getServerIp()
    {
        return this.ServerIP;
    }

    public int getServerPort()

作者  | 2012-7-5 13:58:18 | 阅读(226) |评论(0) | 阅读全文>>

设计模式之 使用静态工厂模式代替构造函数(Java)

2012-7-5 10:50:51 阅读508 评论0 52012/07 July5

设有一个

package com.stephen.javatest02;

public class Complex {
    private double re;
    private double im;
    
    private Complex(double re, double im) //注意这里用private, 不让使用者直接来new生成
    {
        this.re = re;
        this.im = im;
    }
    
    public void printRe()
    {
        System.out.println("re=" + this.re );

作者  | 2012-7-5 10:50:51 | 阅读(508) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 

山东省 青岛市

 发消息  写留言

 
快乐些,正直些,稳健些
 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
心情随笔列表加载中...
 
 
 
 
 

天气

 
 
模块内容加载中...
 
 
 
 
 
 
 
列表加载中...
 
 
 
 
 

"小桥加加"系列链接

 
 
模块内容加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018

注册 登录  
 加关注