析构函数前加virtual作用

最近在利用地铁通勤时间学习c++相关知识,在csdn看到一篇关于为什么析构函数前加virtual的文章,csdn原文:析构函数前加Virtual作用

大家知道,析构函数是为了在对象不被使用之后释放它的资源,虚函数是为了实现多态。那么把析构函数声明为vitual有什么作用呢?请看下面的代码:

#include<iostream>

using namespace std;

class Base

{

public:

Base() {}; //Base的构造函数

~Base() //Base的析构函数

{

cout << "Output from the de......

strdup函数使用误区

在项目中看到有同事使用strdup函数后没有释放内存,在google搜索后发现许多网站中给的代码例子中使用完之后并未释放内存,存在一定程度上的误导。

geeksforgeeks

// C program to demonstrate strdup()

#include<stdio.h>

#include<string.h>

int main()

{

char source[] = "GeeksForGeeks";

// A copy of source is created dynamically

// and pointer......

MongoDB C Driver使用完全教程

学习使用MongoDB C Driver需要首先在本机安装mongodb,安装过程参考如下链接:

How to Install and Configure MongoDB on CentOS 7

启动mongodb存在告警信息,解决方法可以参考stackoverflow

升级cmake

由于centos7自带的cmake版本过低,因此需要升级cmake

root@localhost ~]# yum -y install gcc gcc-c++ kernel-devel ##先安装编译软件

[root@localhost ~]# wget https://cmake.or......

复合&继承关系下的构造和析构

继承关系下构造析构顺序#include<iostream>

using namespace std;

class Base

{

public:

Base(){

cout << "Base ctor ..." << endl;

}

virtual ~Base(){

cout << "Base dtor ..." << endl;

}

};

class Derived:public Base

{

public:

Derived(){

cout << "Derived cto......

侯捷C++全方位提升技能素养笔记

最近晚上开始看c++相关资料,网上找到一个侯捷2016年的视频,抽看看了下获益良多.现整理记录相关知识点。

侯捷C++全方位提升技能素养

iostream与iostream.h的区别

When including a header file in C++, what's the difference between...

1) including the .h versus no......

c++ 程序设计学习笔记

函数指针

程序运行期间,每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址(入口地址)。我们可以将函数的入口地址赋给一个指针变量,使该变量指向该函数。然后通过指针变量就可以调用这个函数。这种指向函数的指针变量称为函数指针。

#include <iostream>

#include <vector>

#include <sys/stat.h>

#include <unistd.h>

#include <string>

#include <fstream>

#include <cstdde......

shell导入环境变量

看到一篇非常有意思的文章export variables,讲述了shell环境变量的用法,其中有一个比较新奇的点,例如我在命令行中直接输入bash可以创建一个新的实例(start a new shell instance).如果普通的变量定义在子进程中输出为空,如果想要将变量传递给子进程就需要export变量。

在stackoverflow看到一篇答案bash

The short answer is that when you type "bash" at a bash prompt, it starts a new bash process.

Bash is a program t......

面向对象编程c实现

微信公众号看到一篇文章,使用C实现封装、继承、多态,恰好最近开发中在使用C++,因此将代码做简单修改提交到自己github中c4oop.

week-note-190108

touch命令

Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

注意到touch命令是在youtube上的一个video,对一个存在的文件,使用touch命令将更新文件或者目录的时间属性。

[root@centos-linux-10 workspace]# ll -al

总用量 80

drwxr-xr-x. 3 root root 4096 12月 31 15:05 .

dr-xr-x---. 7 root root 4096 12月 31 15:05 ..

drwxr-xr-x. 2 root root ......

C++ primer 5th学习

由于最近工作中需要使用c++编写一个工具,趁元旦三天假期学习下c++的相关特性,浏览C++ primer 5th一书,这本当时4年前买的大块头的书,看新旧程度应该只看了100页左右😓。

编译c++程序

gcc可以对c/c++代码进行编译,g++可以对c++代码进行编译,gcc和g++在编译c++代码时,在预编译 编译阶段作用相同,在链接阶段g++会自动链接标准c++库,so,而gcc需要手动加上-lstdc++

完整的编译命令如下:

gcc -g -o execute example.cpp -lstdc++

使用gcc编译完整命令:

g++ -o prog1 prog1.......