ireneliu 发布的文章

今天总算迈出了第一步,看了一点点东西,有了一点点了解,先写个标题,占下位置。不然,过几天想写博客的时候,就忘了自己这几天学了些啥

tryLock 是防止自锁的一个重要方式。

tryLock()方法是有返回值的,它表示用来尝试获取锁,如果获取成功,则返回true,如果获取失败(即锁已被其他线程获取),则返回false,这个方法无论如何都会立即返回。在拿不到锁时不会一直在那等待。

lock()方法去获取锁,当获取不到锁的时候,会一直等待,直到获取到锁。

  • explicit关键字只能修饰只有一个参数的类构造函数。
  • explicit表明该函数时显式的,不能进行自动地隐式类型转换。

    class Demo{
    public:
    Demo();  //没有参数,无法进行类型转换
    Demo(double a);  //有一个参数,可以进行类型转换
    Demo(int a, double b);  //有两个参数,无法进行类型转换
    Demo(int a, int b = 10, double c = 1.6);  //有三个参数,其中两个参数有默认值,故可以进行隐式转换
    ~Demo();
    ...
    };
  • implicit 隐式的,类构造函数默认情况下声明为隐式的

    class Demo{
    public:
    Demo();                    
    explicit Demo(double a);  // 无法进行隐式转换   
    Demo(int a,double b);           
    ~Demo();
    };
    Demo test;
    test = 12.2  ×
    
    test = (Demo)12.2 √