-
对private和public的更多阐述
所属栏目:[语言] 日期:2021-05-28 热度:114
声明为 private 的成员和声明为 public 的成员的次序任意,既可以先出现 private 部分,也可以先出现 public 部分。如果既不写 private 也不写 public,就默认为 private。 在一个类体中,private 和 public 可以分别出现多次。每个部分的有效范围到出现另[详细]
-
类的成员变量和成员函数的差异
所属栏目:[语言] 日期:2021-05-28 热度:104
类可以看做是一种数据类型,它类似于普通的数据类型,但是又有别于普通的数据类型。类这种数据类型是一个包含成员变量和成员函数的集合。 类的成员变量和普通变量一样,也有数据类型和名称,占用固定长度的内存。但是,在定义类的时候不能对成员变量赋值,[详细]
-
Queue和Pipe进程间通信的实现方式
所属栏目:[语言] 日期:2021-05-28 热度:200
前面讲解了使用 Queue 模块中的 Queue 类实现线程间通信,但要实现进程间通信,需要使用 multiprocessing 模块中的 Queue 类。 简单的理解 Queue 实现进程间通信的方式,就是使用了操作系统给开辟的一个队列空间,各个进程可以把数据放到该队列中,当然也可[详细]
-
Python schedule任务调度及其使用方式
所属栏目:[语言] 日期:2021-05-28 热度:106
scheduler 类常用的构造方法如下: scheduler(timefunc=time.monotonic, delayfunc=time.sleep) 可以向该构造方法中传入 2 个参数(当然也可以不提供,因为都有默认值),分别表示的含义如下: timefunc:指定生成时间戳的函数,默认使用 time.monotonic 来[详细]
-
Python Timer定时器:控制函数在规定时间实施
所属栏目:[语言] 日期:2021-05-28 热度:136
from threading import Timer def hello(): print(hello, world) # 指定10秒后执行hello函数 t = Timer(10.0, hello) t.start() 上面程序使用 Timer 控制 10s 后执行 hello 函数。 需要说明的是,Timer 只能控制函数在指定时间内执行一次,如果要使用 Time[详细]
-
逻辑运算的结果与优先级分析
所属栏目:[语言] 日期:2021-05-28 热度:87
在编程中,我们一般将零值称为假,将非零值称为真。逻辑运算的结果也只有真和假,真对应的值为 1,假对应的值为 0。1) 与运算()参与运算的两个表达式都为真时,结果才为真,否则为假。例如: 50 5为真,0为假,相与的结果为假,也就是 0。 (50) (42) 50 的[详细]
-
C语言三大编程结构汇总
所属栏目:[语言] 日期:2021-05-28 热度:78
C语言中常用的编程结构有三种(其它编程语言也是如此),它们分别是: 顺序结构:代码从前往后依次执行,没有任何拐弯抹角,不跳过任何一条语句,所有的语句都会被执行到。 选择结构:也叫分支结构。代码会被分成多个部分,程序会根据特定条件(某个表达式[详细]
-
C语言const的用法与定义剖析
所属栏目:[语言] 日期:2021-05-28 热度:116
有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定。例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大[详细]
-
typedef 和 #define 的差异
所属栏目:[语言] 日期:2021-05-28 热度:101
typedef 在表现上有时候类似于 #define,但它和宏替换之间存在一个关键性的区别。正确思考这个问题的方法就是把 typedef 看成一种彻底的封装类型,声明之后不能再往里面增加别的东西。 1) 可以使用其他类型说明符对宏类型名进行扩展,但对 typedef 所定义的[详细]
-
stdio.h 和 stdlib.h 是最常用的两个实例
所属栏目:[语言] 日期:2021-05-28 热度:144
还有最后一个问题,示例中第1行的#include stdio.h是什么意思呢? C语言开发者们编写了很多常用函数,并分门别类的放在了不同的文件,这些文件就称为头文件(header file)。每个头文件中都包含了若干个功能类似的函数,调用某个函数时,要引入对应的头文件[详细]
-
C语言提供了很多功能:函数的概念
所属栏目:[语言] 日期:2021-05-28 热度:131
先来看第 4 行代码,这行代码会在显示器上输出C语言中文网。前面我们已经讲过,puts 后面要带( ),字符串也要放在( )中。 在C语言中,有的语句使用时不能带括号,有的语句必须带括号。带括号的称为函数(Function)。 C语言提供了很多功能,例如输入输出、[详细]
-
场景信息可以协助计算机视觉
所属栏目:[语言] 日期:2021-05-28 热度:158
考虑这样一个例子,一个移动机器人需要在一栋建筑中找到并且拿起一个订书机。机器人就可能用到这样的事实:桌子通常放在办公室里,而订书机通常收纳在桌子里。这也同样给出了一个关于尺寸的推断:订书机的大小一定可以被桌子所收纳。 更进一步,这还可以帮[详细]
-
OpenCV库的一般使用方式
所属栏目:[语言] 日期:2021-05-28 热度:79
为了用 C++ 开发一个 OpenCV 应用,需要在代码中: 包含 OpenCV 的头文件定义; 链接 OpenCV 库(二进制文件),以获取最终的可执行文件; OpenCV 头文件位于OPENCV_BUILDinstallincludeopencv2目录中,此处对于每个模块都有一个文件(*.hpp)。用 #incl[详细]
-
Go语言可变参数类型简单易懂
所属栏目:[语言] 日期:2021-05-28 热度:168
在C语言时代大家一般都用过 printf() 函数,从那个时候开始其实已经在感受可变参数的魅力和价值,如同C语言中的 printf() 函数,Go语言标准库中的 fmt.Println() 等函数的实现也依赖于语言的可变参数功能。 本节我们将介绍可变参数的用法。合适地使用可变参[详细]
-
延迟执行语句处理方式及资源的使用
所属栏目:[语言] 日期:2021-05-28 热度:192
多个延迟执行语句的处理顺序当有多个 defer 行为被注册时,它们会以逆序执行(类似栈,即后进先出),下面的代码是将一系列的数值打印语句按顺序延迟处理,如下所示: package main import ( fmt ) func main() { fmt.Println(defer begin) // 将defer放入[详细]
-
Go语言处理运行时需要避免的问题
所属栏目:[语言] 日期:2021-05-28 热度:176
net.Dial() 是Go语言系统包 net 即中的一个函数,一般用于创建一个 Socket 连接。 net.Dial 拥有两个返回值,即 Conn 和 error,这个函数是阻塞的,因此在 Socket 操作后,会返回 Conn 连接对象和 error,如果发生错误,error 会告知错误的类型,Conn 会返[详细]
-
Go语言宕机恢复我有小妙招
所属栏目:[语言] 日期:2021-05-28 热度:136
Recover 是一个Go语言的内建函数,可以让进入宕机流程中的 goroutine 恢复过来,recover 仅在延迟函数 defer 中有效,在正常的执行过程中,调用 recover 会返回 nil 并且没有其他任何效果,如果当前的 goroutine 陷入恐慌,调用 recover 可以捕获到 panic[详细]
-
Go语言内嵌结构体成员名字歧义的解决办法
所属栏目:[语言] 日期:2021-05-28 热度:89
嵌入结构体内部可能拥有相同的成员名,成员重名时会发生什么?下面通过例子来讲解。 package main import ( fmt ) type A struct { a int } type B struct { a int } type C struct { A B } func main() { c := C{} c.A.a = 1 fmt.Println(c) } 代码说明如[详细]
-
清除编译文件需要用到的语言
所属栏目:[语言] 日期:2021-05-28 热度:188
Go语言中go clean命令可以移除当前源码包和关联源码包里面编译生成的文件,这些文件包括以下几种: 执行go build命令时在当前目录下生成的与包名或者 Go 源码文件同名的可执行文件。在 Windows 下,则是与包名或者 Go 源码文件同名且带有.exe后缀的文件。[详细]
-
利用反射获取指针指向的元素类型的处理方式极为安全
所属栏目:[语言] 日期:2021-05-28 热度:178
Go语言程序中对指针获取反射对象时,可以通过 reflect.Elem() 方法获取这个指针指向的元素类型。这个获取过程被称为取元素,等效于对指针类型变量做了一个*操作,代码如下: package main import ( fmt reflect ) func main() { // 声明一个空结构体 type c[详细]
-
C++ inline内联函数分析大全
所属栏目:[语言] 日期:2021-05-28 热度:145
如果函数体代码比较多,需要较长的执行时间,那么函数调用机制占用的时间可以忽略;如果函数只有一两条语句,那么大部分的时间都会花费在函数调用机制上,这种时间开销就就不容忽视。 为了消除函数调用的时空开销,C++ 提供一种提高效率的方法,即在编译时[详细]
-
C++ new和delete运算符讲解
所属栏目:[语言] 日期:2021-05-28 热度:73
在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。如下所示: int *p = (int*) malloc( sizeof(int) * 10 ); //分配10个int型的内存空间 free(p); //释放内存 在C++中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delet[详细]
-
面向对象编程有着举足轻重的作用
所属栏目:[语言] 日期:2021-05-28 热度:72
类是一个通用的概念,C++等很多编程语言中都支持类,都可以通过类创建对象。可以将类看做是结构体的升级版,C语言的晚辈们看到了C语言的不足,尝试加以改善,继承了结构体的思想,并进行了升级,让程序员在开发或扩展大中型项目时更加容易。 因为 C++、Java[详细]
-
10分钟让你知道C++类和对象到底是什么?
所属栏目:[语言] 日期:2021-05-27 热度:81
C++ 中的类(Class)可以看做C语言中结构体(Struct)的升级版。结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同;可以通过结构体来定义结构体变量,每个变量拥有相同的性质。例如: #include stdio.h //定义结构体 Student struc[详细]
-
了解学会Python 代码优化原则
所属栏目:[语言] 日期:2021-05-27 热度:135
第一个基本原则是不要过早优化。很多人一开始写代码就奔着性能优化的目标,让正确的程序更快要比让快速的程序正确容易得多。因此,优化的前提是代码能正常工作。过早地进行优化可能会忽视对总体性能指标的把握,在得到全局结果前不要主次颠倒。 第二个基本[详细]