1. ln命令用于创建硬链接;ln-s可以创建软连接。
2. inode包含文件的元信息。在linux系统当中,不是用文件名来标志一个文件,而是用inode。因此,硬链接就是多个文件名指向同一个inode,当删除其中一个链接时,该inode对应的文件名减少1;软连接是一个文件的内容存储的是另一个文件的路径,虽然对应不同的inode号码,但是由于中间文件的存在,仍然可以访问inode信息,但是如果另一个文件不存在了,打开当前的文件就会出错。总结起来,硬链接是并联,软链接是串联。
3. 纯虚函数:virtual void func()=0; 重要的是=0。一个函数没有函数体时,写不写大括号都是一样的。virtual void func();是一个虚函数,void func();是一个普通类函数。纯虚函数的目的:如果直接实例化,会报错,并且如果在子类中没有覆盖该函数也会报错。
4. 单例模式:
/*考虑到线程安全,即一个线程在创建该实例时,不能让另一个线程创建该实例,需要加锁。*/
//有默认的构造函数来支持类的拷贝。所以采用局部静态变量的时候,需要禁用拷贝构造函数和operator=
class singleton{
private:
singleton(){}
singleton(const singleton &);
singleton& operator=(const singleton&);
public:
static singleton * getInstance();
static singleton *pInstance;
};
singleton* singleton::pInstance=0;
singleton* singleton::getInstance(){
if(pInstance==NULL){
lock();
if(pInstance==NULL){
pInstance= new singleton();
}
}
unlock();
return pInstance;
}