C++
文章平均质量分 75
007lizhen
这个作者很懒,什么都没留下…
展开
-
MFC .ocx控件开发
本文将介绍ocx的含义,以及如何利用MFC创建ocx控件。1、ocx控件的含义OCX 是对象类别扩充组件(Object Linking and Embedding (OLE) Control Extension);是可执行的文件的一种,但不可直接被执行; 是 ocx 控件的扩展名,与 .exe、.dll 同属于PE文件。(来源于百度百科) 简单来说,在界面开发时,需要用到许多控件,比...原创 2018-03-27 20:01:20 · 2817 阅读 · 0 评论 -
Linux网络编程学习笔记(5)---实现点对点通信(回射客服端/服务器模型)
·本文首先介绍回射客户端/服务器模型,再实现点对点的通信。1、回射客户端/服务器模型2、点对点通信假设存在A和B两个主机,将A看作服务器端,将B看作客户端。那么,对于A实现步骤如下:利用socket()函数,声明一个套接字listenfd;利用bind()函数将本地地址与listenfd绑定;利用listen()函数,来监听网络中对套接字listenfd的连接请求...原创 2018-03-13 16:29:00 · 749 阅读 · 0 评论 -
Linux网络编程学习笔记(4)---TCP客户端/服务器模型(C/S模型)
TCP的客户端/服务器模型如下图所示。 上图中,用到的函数介绍如下:1、 socket()函数该函数用于创建一个新的套接字。函数原型int socket(int domain,int type,int protocol)参数介绍:domain:通信协议族,IPV4为AF_INET或PF_INETtype:指定socket类型,流式套接字(SOCK_STREAM)、数据...原创 2018-03-13 15:09:00 · 1539 阅读 · 0 评论 -
Linux网络编程学习笔记(3)---socket编程中的基本概念
本文将介绍socket的概念、IPV4套接口地址结构、字节序、套接字类型以及常用的几个地址转换函数。1、什么是socket?socket可以看成是用户进程与内核网络协议栈的编程接口。它不仅可以用于本机间的进程间通信,还可以用于网络上不同主机间的进程间通信。socket在TCP/IP协议栈中的位置如下图所示。 2、IPV4套接字地址结构(网际套接字地址结构)存放于<n...原创 2018-03-13 11:02:34 · 287 阅读 · 0 评论 -
理解C++关键字(7)---理解虚函数virtual
本文将介绍C++中虚函数的作用、特点及存储方式。1、虚函数的作用在介绍虚函数之前,需要了解一下早绑定(静态多态)和晚绑定(动态多态)的概念。1.1 静态多态早绑定,一般可通过模板实现。例如函数重载,对于同名的两个或多个函数,在编译阶段,编译器根据函数的形参个数及类型来决定调用哪个函数。观察下面的例子:#include<iostream>using na...原创 2018-01-24 17:04:10 · 453 阅读 · 0 评论 -
理解C++关键字(8)---inline内联函数
前面在总结const关键字时,曾提到:C++中几乎抛弃了宏定义,进而接受了const。对于在c语言中的宏定义关键字“#define”,确实存在着很多优势,并且在程序运行时充当了“替换”的工作。 我们知道,“#define”关键字,可以宏定义变量,也可以定义函数宏。比如#define MAX(A,B) A>B?A:B。在C++中,也提供了一个类似于函数宏的关键字“inline”。当然,它比...原创 2018-01-25 17:07:05 · 331 阅读 · 0 评论 -
理解C++关键字(5)---理解const关键字
在《Effective c++》中,条款02指出:尽可能的使用const替换define;条款03指出:尽可能的使用const。可见,define在C++中不太受欢迎。本文将总结const的一般用法,并说明其和define两者的区别。1、const的一般用法与特点(1)将常见的数据类型约束为“不可被改动的对象”。例如一下语句:cont int a=5;将整型变量a声明为常量...原创 2018-01-21 15:01:21 · 264 阅读 · 0 评论 -
C++基础知识复习与总结(6)---友元friend、友元函数和友元类
为了在类之间进行数据共享时,提高效率,C++引入了友元的概念。友元主要有三个方面的应用:将普通函数声明为类的友元函数;将一个类声明为其他类的友元类;将一个类中的成员函数声明为其他类的友元函数。下面分别介绍。1、普通函数声明为友元函数将一个普通函数,声明为某个类的友元函数后(在函数声明前加上“friend”关键字),该函数就可以访问类中的任何成员。观察下面的代码:...原创 2018-01-22 14:56:05 · 404 阅读 · 0 评论 -
C++基础知识复习与总结(1)---C++内存管理
C++编译器将计算机内存分为代码区和数据区。数据区又分为静态数据区、动态数据区及常量区。如下图所示。 (1)栈区:由编译器自动分配释放,用于存放局部变量、函数参数等,随作用域退出而释放; (2)堆区:程序员分配并释放的区域,像malloc(c)、new(c++)以及free、delete,若程序员不释放,会造成内存泄露问题,导致后面一直无法访问这片区域。但程序退出后,系统会自动回收资源;原创 2018-01-18 12:07:57 · 339 阅读 · 0 评论 -
理解C++关键字(3)---动态内存分配之 new和delete
本文将总结C++中的new和delete关键字,及其在动态内存分配的情形。1、问题引出对于常见的数组或一个数值变量,在C++中,他们都被存放于“栈区”。由于“栈区”的内存是系统自动分配的,在声明一个数组时,需要事先告诉数组的大小,申请以后,数组大小就固定了。这样,就给我们带来了很多不便,比如大数组只存放了少量的数据。new关键字就很好的解决了这个问题。由于new申请的内存是在“堆区原创 2018-01-19 11:37:55 · 365 阅读 · 0 评论 -
理解C++关键字(4)---cout和cin以及运算符重载
在用C++编写程序时,最常用的就是变量的输入输出了。在C++中,一般用cin和cout来实现变量的输入和输出。但是,cin和cout并不是C++内部定义的运算符,而分别是istream类和ostream类的对象。而且都位于std命名空间中。在类中实现cin和cout操作时,用到了运算符“那么由此以来我们自己也可以通过重载“>”来实现输入输出操作。定义MyOut类,在类中通过重载“原创 2018-01-19 16:51:30 · 3055 阅读 · 0 评论 -
理解C++关键字(2)---static关键字
当我们在自己编写或阅读他人写的代码时,经常会遇到“static”关键字,本文将对“static”关键字涉及的知识点加以总结。1、static关键字的应用场景总体来说,主要应用于以下5个场景:面向过程:(1)声明静态局部变量 (2)声明静态全局变量 (3)声明静态函数 面向对象:(4)声明类的静态成员变量 (5)声明类的静态成员函数2、static关键字应原创 2018-01-18 20:07:09 · 214 阅读 · 0 评论 -
数据结构与算法C++描述(10-插曲)---函数名作形参
在文献[1]中,描述二叉树时利用了函数名作为形参。在此加以说明与解释。1.函数参数的传递方式我们都知道,函数参数的传递一般有:值传递、指针传递和引用传递。先来回顾一下:值传递时,先临时分配一块内存,将形参的值拷贝进去,在函数中利用临时分配的变量进行运算。当函数退出时,释放临时分配的内存,也就是说,不会影响原来的形参值。如下述程序及运行结果所示。void fun1(int a)原创 2017-10-26 11:25:18 · 836 阅读 · 0 评论 -
基于Qt的中国男足国家队“世亚预”小组赛出线分析
这个作品诞生于国足第九轮主场对战乌兹比克斯坦前一天,限于个人水平,没能在第九轮比赛前完成。我本想这个作品会“胎死腹中”,结果国足太给力,没让它早早的夭折。在这里,我要感谢Dang,感谢Ren Min,感谢某某TV。。。。。。本文算是利用“国足”的机会对之前学习QT和C++基本知识的总结。包括但不限于类的声明与实现,各个类间的相互调用,多个数组间各个元素的依次比较,Qt中图片的显示,QLineEdi原创 2017-09-03 22:56:13 · 1094 阅读 · 2 评论 -
基于Qt+FFmpeg的摄像头视频采集及存储系统实现
本文主要基于Qt的利用FFmpeg的视频库完成对网络摄像头(H.264)视频流的解码,显示,格式转换及存储。文章的FFmpeg + Qt的实现摄像头(RTSP)显示实时实现了摄像头视频流的解码及显示工作。接下来就是视频格式转换,主要转换思路是:视频存储(YUV420P) - &gt; H.264-&gt; AVI1,视频存储采用以下方式,将解码后的一帧帧图像(YUV格式)存储到本地...原创 2018-07-12 23:31:55 · 11736 阅读 · 4 评论