编程语言(c/c++/java/c#)
caimagic
GNSS+SLAM
展开
-
c# sealed 使用方法
1. sealed关键字 当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。类似于Java中final关键字。 在下面的示例中,类 B 从类 A 继承,但是任何类都不能从类 B 继承。2. sealed 修饰方法或属性 能够允许类从基类继承,并防止它们重写特定的虚方法或虚属性。 1)sealed是对虚方法或虚属性,也就是同overr原创 2016-09-08 17:19:48 · 1132 阅读 · 0 评论 -
c/c++强制类型转换
Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意? A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型: 代码:int i;double d;i =原创 2016-05-26 17:02:39 · 485 阅读 · 0 评论 -
C++中的三种继承public,protected,private详细解析
我们已经知道,在基类以private方式被继承时,其public和protected成员在子类中变为private成员。然而某些情况下,需要在子类中将一个或多个继承的成员恢复其在基类中的访问权限三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问三种继承方式public 继承 protect 继承 pr原创 2016-05-25 11:49:52 · 845 阅读 · 0 评论 -
Const,Const函数,Const变量,函数后面的Const
看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议原创 2016-05-25 10:52:12 · 387 阅读 · 0 评论 -
C++函数后面加const修饰
给隐含的this指针加const,表示这个this指向的东西是const的,也就是说这个函数中无法改动数据成员了。const是一种保证,告诉你这个成员不会改变对象的状态。声明一个成员函数的时候用const关键字是用来说明这个函数是 “只读(read-only)”函数,也就是说明这个函数不会修改任何数据成员(object)。 为了声明一个const成员函数, 把const关键字放在函数括号的后面。声明原创 2016-05-25 10:49:30 · 11879 阅读 · 1 评论 -
c++ operator重载 使用
operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。 这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。一、为什么使用操作符重载? 对于系统的所有操作符,一般情况下,只支持基本数据类型和标准库中原创 2016-05-24 21:35:50 · 704 阅读 · 0 评论 -
C++ 内存分配(new,operator new)详解
转载自:http://blog.csdn.net/wudaijun/article/details/9273339 本文主要讲述C++ new运算符和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用。一 new运算符和operator new(): new:指转载 2016-05-24 21:31:08 · 4028 阅读 · 0 评论 -
kinect深度图转换为 HSI图和灰度图 代码
// 编程中最没用的东西是源代码,最有用的东西是算法和数据结构#include "opencv2/core.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/highgui.hpp"#include "MMAPFile.h"#include "CLog.h"#include "CLogManager.h"#include "io.h"原创 2016-04-11 17:04:45 · 1526 阅读 · 0 评论 -
glFlush() 和 glFinish()
OpenGL 绘图的机制先用 OpenGL 的绘图上下文 Rendering Context (简称为 RC )把图画好,再把所绘结果通过 SwapBuffer() 函数传给 Window 的绘图上下文 Device Context (简记为 DC)。要注意的是,程序运行过程中,可以有多个 DC,但只能有一个 RC。因此当一个 DC 画完图后,要立即释放 RC,以便其它的 DC 也使用。glF原创 2016-02-29 00:54:17 · 3448 阅读 · 0 评论 -
MFC开发 常见控件库
Xtrme toolkit,BCGControlBar,SkinMagic,AppFace,Skin++,Uskin++,SYGUI,LibUIDK,GuiToolkit,GardenUI等等,除了后两种一个是开源,一个是免费的外,其余的都是收费的。 The Ultimate Toolboxhttp://www.codeproject.com/KB/MFC/UltimateToolbox.aspx转载 2016-03-12 10:40:58 · 3795 阅读 · 0 评论 -
c# 矩阵求逆(转载)
1.代码思路1)对矩阵进行合法性检查:矩阵必须为方阵2)计算矩阵行列式的值(Determinant函数)3)只有满秩矩阵才有逆矩阵,因此如果行列式的值为0(在代码中以绝对值小于1E-6做判断),则终止函数,报出异常4)求出伴随矩阵(AdjointMatrix函数)5)逆矩阵各元素即其伴随矩阵各元素除以矩阵行列式的商2.函数代码(注:本段代码只实现了一个思路,可能并不是该问题的最优解)/// <sum原创 2016-05-14 18:35:10 · 6397 阅读 · 1 评论 -
c++ map使用
Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作! 1. map最基本的构造函数; map<string , int >mapstring; map<int ,string >mapint; map<sring, char>mapstring; map< char ,str转载 2016-04-24 18:19:42 · 399 阅读 · 0 评论 -
qt学习--产生随机数
产生随机数 QTime time; time= QTime::currentTime(); qsrand(time.msec()+time.second()*1000); int n = qrand();0到100随机数 QTime time; time= QTime::currentTime(); qsrand(time.msec()+time.second()*1000); in原创 2016-06-01 22:03:28 · 2062 阅读 · 0 评论 -
delete 和 delete[]的区别
delete ---- newdelete[] ----- new[]example:// rightint* a = new int;delete a;int* a = new int[10];delete a;int* a = new int[10];delete[] a;ClassA* a = new ClassA();delet原创 2016-08-13 17:14:01 · 757 阅读 · 1 评论 -
c++ 资源大全
转载自:https://github.com/jobbole/awesome-cpp-cn### 标准库C++标准库,包括了STL容器,算法和函数等。* [C++ Standard Library](http://en.wikipedia.org/wiki/C%2B%2B_Standard_Library):是一系列类和函数的集合,使用核心语言编写,也是C+原创 2016-08-04 18:45:21 · 2571 阅读 · 0 评论 -
c++ 11 新特性
声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Biggest Changes in C++11(and Why You Should Care)》一文,几乎所有内容都搬了过来,但不是全文照译,有困惑之处,请参详原文(http://www.softwarequalityconnection.com/2011/06/the-biggest-changes-i转载 2016-08-03 16:55:31 · 703 阅读 · 0 评论 -
QT 跨线程发送信号非元数据信号解决
参考博客:http://qimo601.iteye.com/blog/1673578http://blog.csdn.net/luotuo44/article/details/39395025http://blog.csdn.net/seanyxie/article/details/7025183http://www.devbean.net/2013/12/qt-stu原创 2016-07-14 10:52:26 · 509 阅读 · 0 评论 -
c# tcp socket 通信
直接上代码,来干货server:dhuidgudg原创 2016-06-28 16:34:03 · 696 阅读 · 0 评论 -
写一个框架的详细步骤
转载自:http://blog.csdn.net/u014421556/article/details/51543868 定位 所谓定位就是回答几个问题,我出于什么目的要写一个框架,我的这个框架是干什么的,有什么特性适用于什么场景,我的这个框架的用户对象是谁,他们会怎么使用,框架由谁维护将来怎么发展等等。 如果你打算写框架,那么肯定心里已经有一个初步的定位,比如它是一个缓存框架、Web MVC转载 2016-06-04 15:58:08 · 1267 阅读 · 0 评论 -
各个系统的宏定义
#ifdef _WIN32 // note the underscore: without it, it's not msdn official! // Windows (x64 and x86) #elif __unix__ // all unices // Unix #elif __posix__ // POSIX #elif __linux__ /原创 2016-06-04 15:51:38 · 1210 阅读 · 0 评论 -
C++引用与指针的比较
C++引用与指针的比较 引用是C++中的概念,初学者容易把引用和指针混淆一起。 一下程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m; int &n = m; n相当于m的别名(绰号),对n的任何操作就是对m的操作。 所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。 引用的规则: (1)引用被创建的同时必须被初始化(指针原创 2016-05-22 12:25:57 · 438 阅读 · 0 评论 -
c++--实参和形参
C/C++中的实参和形参 今天突然看到一道关于形参和实参的题,我居然不求甚解。藐视过去在我的脑海里只有一个参数的概念,对于形参和实参的区别还真的不知道,作为学习了几年C++的人来说,真的深深感觉对不起自己对不起C++老师 T。T我觉得只要明白了值传递和地址传递,就应该能明白形参和实参的具体工作细节了。1、值传递实参是变量,表达式等值。find(int x){}y= find(z);上面的例原创 2016-06-02 16:14:51 · 5468 阅读 · 1 评论 -
禁用VS2010的IntelliSense
IntelliSense(代码提示,关联等等),经常会占用很大的CPU和内存,导致电脑很卡,所以,建议禁用掉。 VS2010的禁用方法是:工具—选项—文本编辑器—C/C++—高级—禁用IntelliSense,将其设置为True即可。 “工具—选项”里,还有很多其他配置项,可以改改试试;如果改错了,无法恢复,请重置下VS2010的设置。 重置命令是:devenv.exe /setup /res原创 2016-06-02 10:33:58 · 1660 阅读 · 0 评论 -
windows 快速创建大文件
一、使用内存映射文件: CreateFileMapping的参数可以设置最大长度,当实际文件的长度小于设置的最大长度时,系统自动扩展。注意:在CreateFile的时候要加写权限。 HANDLE hFile; HANDLE hMapFile; hFile = CreateFile( "D://LargeFile.dat", GENERIC_WR转载 2016-03-09 01:37:32 · 1783 阅读 · 0 评论 -
c# get set 说明
C# get set用法很简单的,但是必须要很好掌握基础的认识,才能更好的理解C# get set用法。C# get set用法中,get是读取属性时进行的操作,set是设置属性时进行的操作。定义一个属性如果只有get,这个属性就是只读的。同样,只有set,属性就是只写的,当然只写的属性是没有任务意义的。假设类是一个银行,既能存钱也能取钱.private m_money; priv原创 2016-04-05 11:50:49 · 721 阅读 · 0 评论 -
c# log组件 log4net使用介绍
在软件开发和测试过程中,打印log信息是必不可少的调试方法。尤其在定位偶发性出现的问题的时候,用log的方式,就能体现出优势了。log4net是一个开源的log代码,只需要应用他的dll,并且在config中进行相关配置,就能在程序中轻松使用了。log4net 下载地址: http://logging.apache.org/log4net/download_log4net.cgi下载后 就有lo原创 2016-04-05 10:19:47 · 6218 阅读 · 0 评论 -
内存映射文件技术
一.内存映射文件技术作用 1.使用内存映射文件来访问磁盘上的数据文件。这使你可以不必对文件执行 I / O操作,并且可以不必对文件内容进行缓存. 2.可以使用内存映射文件,使同一台计算机上运行的多个进程能够相互之间共享数据。windows确实提供了其他一些方法, 以便在进程之间进行数据通信,但是这些方法都是使用内存映射文件来实现的,诸如使用SendMessage或者PostMessag原创 2016-03-03 18:15:58 · 830 阅读 · 0 评论 -
C# BackgroundWorker使用
BackgroundWorker 可以用于启动后台线程。主要的事件及参数: 1.DoWork——当执行BackgroundWorker.RunWorkerAsync方法时会触发该事件,并且传递DoWorkEventArgs参数; 2.RunWorkerCompleted——异步操作完成或中途终止会触发该事件。如果需要提前终止执行后台操作,可以调用BackgroundWorker.Cancel转载 2016-02-17 10:09:52 · 454 阅读 · 0 评论 -
reinterpret_cast 使用说明
reinterpret_cast <new_type> (expression)reinterpret_cast是强制类型转换符!他是用来处理无关类型转换的,通常为操作数的位模式提供较低层次的重新解释!但是他仅仅是重新解释了给出的对象的比特模型,并没有进行二进制的转换!他是用在任意的指针之间的转换,引用之间的转换,指针和足够大的int型之间的转换,整数到指针的转换,在家面的文章中将给出!来看一个例转载 2016-02-03 15:17:19 · 7149 阅读 · 0 评论 -
PeekMessage使用方法
原型:BOOL PeekMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg);前面的四个参数(一个指向MSG结构的指标、一个视窗代号、两个值指示消息范围)与GetMessage的参数相同。将第二、三、四个参数设定为NULL或0时,表明我们想让PeekMessage传回程式中所有转载 2016-02-03 15:00:27 · 14545 阅读 · 0 评论 -
c# list 用法
所属命名空间:System.Collections.Generic public class List : IList, ICollection, IEnumerable, IList, ICollection, IEnumerableList类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList 泛型接口。泛型的好处: 它为使用c#转载 2016-02-16 14:47:44 · 534 阅读 · 0 评论 -
CComPtr用法(转)
CComPtr用法(转)COM接口指针很危险,因为使用过程中需要每一个使用者都要严格并且正确的AddRef和Release,一旦出现问题,就会造成对象不能被正常释放,或者对象被重复删除,造成程序崩溃。所以使用COM接口,必须小心翼翼才行。 但是,即使所有的代码中,都正确的AddRef和Release,也不一定能保证万无一失,例如: void SomeApp( IHello * pHello )转载 2016-01-31 15:09:50 · 641 阅读 · 0 评论 -
dll 文件加载
LoadLibrary函数 随着软件规模的扩大,要求的功能也是越来越多,开发人员的参与也是越来越多。因此软件的功能划分,就成为了现代软件工程的重大任务,还有软件开发的并行性也越来越重要。为了解决这些问题,大家都会看到IT硬件发展非常迅速,功能也越来越复杂,但硬件中发展明显提高在于采用IC的方式来实现复杂的功能,也就是把大部份功能集成到一起,只要给出一些引脚就可以实现产品了。而软件中有没有相同于硬件原创 2016-02-11 01:11:48 · 559 阅读 · 0 评论 -
pcl 1.6 + vs2013 + openmesh 3.3 配置
软件地址PCL 1.6 : http://pan.baidu.com/s/1bqf5Um openmesh 3.3 : http://pan.baidu.com/s/1eQVEBjO 以上软件都是32位, 虽然是64bit的电脑,但是vs2013 建立的32位的工程,所以还是需要用32位软件,不然出编译失败的问题的。openmesh 3.3 配置建立vs2013 工程属性->VC++目录->包含原创 2016-01-29 21:01:55 · 1804 阅读 · 0 评论 -
opengl学习笔记1:vs2013 nehe教程第一课 创建窗口
近来需要想学习一下opengl,但是小白没有任何基础,也非计算机专业出身,只能一步一步学习nehe的程序来学习了。这里实现了在WIN10 vs2013 opengl2.0 环境下跑通nehe教程第一课的程序。1.系统配置“工欲善其事,必先利其器”,所以先介绍一下环境配置,把器搞好了先。 vs2013 下载:http://pan.baidu.com/s/1hrk3tvm opengl下载:http原创 2016-01-29 15:11:13 · 1913 阅读 · 1 评论 -
DirectX 配置 vs2013 Win10 64bit
在win10 ,vs2013环境下配置DirectX Directx下载链接:http://pan.baidu.com/s/1skqWAoH1. Directx安装按照windows的步骤安装即可,顺序如下 安装完成之后就有如下目录文件 2. vs2013工程配置新建一个工程,设置属性。 在包含目录设置如下: $(DXSDK_DIR)Include 在库目录设置如下: $(DXSDK_原创 2016-01-29 02:17:13 · 2783 阅读 · 0 评论 -
C/C++中判断某一文件或目录是否存在
1.C++很简单的一种办法:#include <iostream>#include <fstream>using namespace std;#define FILENAME "stat.dat"int main(){ fstream _file; _file.open(FILENAME,ios::in); if(!_file) {转载 2016-02-18 12:00:06 · 1648 阅读 · 0 评论 -
C# Serializable
System.SerializableAttribute串行化是指存储和获取磁盘文件、内存或其他地方中的对象。在串行化时,所有的实例数据都保存到存储介质上,在取消串行化时,对象会被还原,且不能与其原实例区别开来。只需给类添加Serializable属性,就可以实现串行化实例的成员。并行化是串行化的逆过程,数据从存储介质中读取出来,并赋给类的实例变量。 例:[Serializable] pu原创 2016-03-04 10:49:52 · 469 阅读 · 0 评论 -
C++ 多线程的数据保护机制
C++ 多线程的数据保护机制 同许多线程API一样,C++0x用互斥来保护共享数据。有四种互斥类型:Non-recursive (std::mutex)Recursive (std::recursive_mutex)允许锁超时的non-recursive (std::timed_mutex)允许锁超时的recursive (std::recursive_timed_mutex) 如果你原创 2016-02-18 20:43:44 · 3317 阅读 · 0 评论 -
c++如何对结构体作为形参设置默认值
#include #include using namespace std;class fuck{private: RECT m_rc; static const RECT m_emptyRc;public: fuck(RECT rc = m_emptyRc){m_rc=rc;cout<<m_rc.left<<":"<<m_rc.top<<":"<<m_rc.转载 2016-03-10 21:44:14 · 4290 阅读 · 1 评论