0%

只知道面向对象的三个特性:封装、继承、多态。被问到面相对象的设计原则,结果答不上来,就查资料整理了一下。

  1. 单一职责原则(Single Responsibility Principle)

    每一个类应该专注于做一件事情。

  2. 里氏替换原则(Liskov Substitution Principle)

    超类存在的地方,子类是可以替换的。

  3. 依赖倒置原则(Dependence Inversion Principle)

    实现尽量依赖抽象,不依赖具体实现。

阅读全文 »

在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。   

  • 栈: 存放函数的参数值,局部变量,函数执行结束时会被自动释放。栈内存分配运算内置于处理器的指令集中,效率高,但是容量有限。
  • 堆: 是操作系统所维护的一块特殊内存,用于程序的内存动态分配,C语言使用malloc从堆上分配内存,使用free释放已分配的对应内存。。
  • 自由存储区: 是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。
  • 全局/静态存储区: 全局变量和静态变量被分配到同一块内存中,在C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。(data段:初始化的段;bss段:未初始化的段)
  • 字符常量存储区: 常量字符串存于此,程序结束时由系统释放;
阅读全文 »

这三个概念很重要但是自己容易混淆,就整理记录一下。

一、重载(overload)

同一作用域内的函数名相同,但是它的参数表列个数或顺序,类型不同,就称之为重载。

(1)相同的范围(在同一个作用域中);

(2)函数名字相同;

(3)参数不同;

(4)virtual 关键字可有可无;

(5)返回值可以不同;

阅读全文 »

LeetCode中做题遇到一个,需要解决数字、小写字母、大写字母的问题,可以用C++内置的函数,整理一下,做一下记录:

  1. islower(char c) 是否为小写字母
  2. isupper(char c) 是否为大写字母
  3. isdigit(char c) 是否为数字
  4. isalpha(char c) 是否为字母
  5. isalnum(char c) 是否为字母或者数字
  6. toupper(char c) 字母小转大
  7. tolower(char c) 字母大转小
阅读全文 »

学习工作中经常会用到scp远程下载或者传输文件/文件夹,记录一下具体的操作。

1、从服务器下载文件

1
scp username@servername:/path/filename /tmp/local_destination

例如:把192.168.0.101上的/home/kimi/test.txt的文件下载到 /tmp/local_destination

1
scp codinglog@192.168.0.101:/home/kimi/test.txt 
阅读全文 »