vlambda博客
学习文章列表

每天同一个c++,linux和深度学习八股

Linux:

grep:查找文件里符合条件的字符串

grep test *file //当前目录后缀含有file字样的文件中含test字符的文件

grep -r updat  /etc/acpi  该目录下所有文件和目录包含updata的文件

grep  -v test *test* 过滤不含test的内容

grep "123" test.log  查看test.log中包含123字符的日志

grep -10 '123' test.log打印前后对应的10行

C++:

重写:在继承关系中,子类定义了和父类很相似的虚函数,函数名和参数要相同,返回值可以不同,不过指针要是符子关系或则引用,重写可以实现动态多态

重定义:隐藏也是在继承关系中,子类实现一个和父类一样的函数名,不关心参数和返回值,只看名字,这样子类就函数相当于把父类同名函数隐藏了

重定义和重写是针对继承体系来说的,前者只需要函数名一样,后者得signature一样且为虚函数

重载:同一个作用域,函数名相同,参数或者参数类型不同就可以,至于返回值不重要,重载从底层上看它们还是不同的函数

new、delete 和 malloc、free 的区别:

new/delete是C++的操作符,而malloc/free是C中的函数。

new做两件事,一是分配内存,二是调用类的构造函数;同样,delete会调用类的析构函数和释放内存。而malloc和free只是分配和释放内存

new/delete是保留字,不需要头文件支持;malloc/free需要头文件库函数支持。