c++开发
未央1117
这个作者很懒,什么都没留下…
展开
-
栈与堆、栈区与堆区----两者的区别
一、二者区别 1、首先,栈和堆是数据结构里面的叫法,栈:先进后出,堆:优先队列可采用二叉树实现; 2、内存模型里面的栈区和堆区和数据结构没有关系,底层也不是讲用了数据结构里面的堆栈的存储方式。但是类似,栈区(stack) 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区(heap)一般由程序员分配释放, 若程序员不释放,程序结束时可能...转载 2018-06-13 08:39:38 · 3253 阅读 · 0 评论 -
c++对象成员的引用
在程序中经常需要访问类对象中的成员。访问类对象中的成员可以有3种方法:通过对象名和成员运算符访问对象中的成员;通过指向对象的指针访问对象中的成员;通过对象的引用变量访问对象中的成员。1.通过对象名和成员运算符.访问对象中的成员例如在程序中可以写出以下语句: stud1.num=1001; //假设num已定义为公用的整型数据成员表示将整数1001赋给对象stud1中的数据成员num。其中“....转载 2018-05-30 13:41:46 · 4144 阅读 · 1 评论 -
C++中的定时器-SetTimer OnTimer用法实例
使用步骤如下:1.在消息映射表里声明OnTimer: 2.在BOOL CChargeDlg::OnInitDialog()初始化函数内部,实现SetTimer: 3.设置定时器OnTimer原创 2018-05-30 14:17:31 · 8481 阅读 · 0 评论 -
VC++ MFC中CString类完美总结(整理)
CString 是编程中一种非常有用的数据类型,它是MFC中的一个类,很大程度上简化了MFC中的许多字符串的操作。CString位于头文件afx.h中。①、CString 类对象的初始化:CString str;CString str1(_T("abc"));CString str2 = _T("defg"); TCHAR szBuf[] = _T("kkk");CString str3(szBu...转载 2018-06-13 14:24:26 · 14979 阅读 · 0 评论 -
c++ MFC中——char[17]数组 转化成 char*,再转化成Cstring型在界面进行显示
1.unsigned char A[]数据2.强制转换成char*型,并用Cstring型接收3.再用Cstring的Format进行格式化,进行显示到界面的位置原创 2018-06-14 09:25:32 · 1556 阅读 · 0 评论 -
c++——CString,string,char*之间的转换
这三种各有各的优点。比如CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差。string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的;char*是从学习C语言开始就已经和我们形影不离的了,有许多API都是以char*作为参数输入的。所以熟练掌握三者之间的转换十分必要。以下我用简单的图示指出三者之间的关系,并以标号对应转换的方法。1 string 转为 CSt...转载 2018-06-14 09:45:48 · 15111 阅读 · 0 评论 -
vs中Vc++的win32程序、MFC的项目区别
一.win32 程序中win32 console application 、win32 project工程区别?1:Win32 Application 就是普通的常见的窗口应用程序,是为你开发windows应用程序所准备的。以WinMain()为入口,#include<windows.h>,能够使用win32 API函数。2:Win32 Console Application(win...转载 2018-06-07 14:09:26 · 4576 阅读 · 0 评论 -
C++中的陷阱(一)
导言程序设计语言中充满陷阱,一不小心就会掉入其中万劫不复,之所以有陷阱,是因为语言的设计细节不符合程序员的直觉所以你会发现,语言越高级越注重顺从程序员的直觉。c++也有许多陷阱,所谓山不过来,我就过去,因此将c++中易错点、难点集合于此,会不定期更新。 1.字符串与vector字符串字面值与标准库string不是同一种类型string s("hello");cout<<s.size(...转载 2018-05-31 22:13:22 · 449 阅读 · 0 评论 -
windows下c++ 目录文件的监控--ReadDirectoryChangesW函数的使用
最近在做一个项目,其中涉及到监控指定目录下所有文件和子目录内的修改信息。经过一番努力,总算实现这一功能,在此特别感谢那些帮助过我的朋友和同事们。今天整理一下这几天的收获,列出相关的知识点,供后来者参考。1.FindFirstChangeNotification()函数:功能:创建一个改变通知句柄,并设置通知条件,即发生某种修改时,该通知句柄将被促发生效。该函数仅仅负责对文件修改作出通知,并不记录和...转载 2018-06-15 10:04:32 · 4183 阅读 · 1 评论 -
Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、
查询所有表名:select t.table_name from user_tables t;查询所有字段名:select t.column_name from user_col_comments t;查询指定表的所有字段名:select t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB';查...转载 2018-08-10 14:22:37 · 446 阅读 · 0 评论 -
C++——文件监控之ReadDirectoryChangesW
上篇文章跟大家分享了关于FileSystemWatcher来实现对文件夹的监控,这篇文章主要介绍文件监控的另一种实现方式,利用ReadDirectoryChangesW来实现文件的监控,希望对大家有帮助! #include#include#include#includeusing namespace std;#define MAX_PATH 1024 void fileWatcher(); ...转载 2018-06-04 10:21:18 · 2791 阅读 · 0 评论 -
c++ list, vector, map, set 区别与用法比较
1. List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。2.Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。 List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多了,不需要拷贝和移动...转载 2018-05-16 16:59:04 · 300 阅读 · 0 评论 -
vs2005 MFC界面自绘图形BMP按钮时,设置按钮的位置问题
步骤1:按钮button的属性Owner Draw设置为True;步骤2:在BOOL CChargeDlg::OnInitDialog()函数中调用SetWindowPos(HWND hWnd,HWND hWndInsertAfter,int X,int Y,int cx,_In_ int cy, UINTuFlags)设置按钮的位置,如下 CWnd *pWnd; //以下为修改按钮原创 2018-01-19 15:18:19 · 361 阅读 · 0 评论 -
C++要点总结
1.内联成员函数 1)隐式声明:将成员函数直接定义在类的内部 2)显式声明:inline标示 2)在类中,使用inline定义内联函数时,必须将类的声明和内联成员函数的定义都放在同一个文件中,否则编译时无法进行代码置换。2.同类对象赋值 1)对象赋值语句进行对象赋值时,两个对象的类型必须相同 2)数据成员占存储空间,成员函数占相同的函数代码段 3)类中存在指针时,使用默认赋值运算函数赋值...转载 2018-04-13 10:47:24 · 258 阅读 · 0 评论 -
MFC控件使用说明书
VC++控件工具箱:2 按钮(Button):用来接收用户的命令,应用程序在接收到用户命令后,通常需要进行一些后台工作。按钮可以响应单击或双击动作,在按钮接收到鼠标动作后,向其父窗口发送相应的控件通知,用户可以对这些控件通知进行消息映射,从而进行相应的处理。在一个对话框中,可以定义一个默认按钮,这只要选中按钮属性中的“Default”选项。如果在对话框活动的时候按下了Enter键,则等同于单击了默...转载 2018-04-19 10:10:18 · 5368 阅读 · 0 评论 -
C++:四种必须使用初始化列表情况
【c++】必须在类初始化列表中初始化的几种情况 1. 类成员为const类型 2. 类成员为引用类型#include <iostream>using namespace std; class A{ public: A(int &v) : i(v), p(v), j(v) {} void print_val() { cout << "...转载 2018-05-09 17:03:40 · 1095 阅读 · 0 评论 -
c++——类对象和类指针(作用基本一样:都是为了调用类的成员变量和成员函数)
代码:1234567Student a; //实例化一个类对象as.setName("A"); //Studeng *b = new Student();Student *b; //实例化一个类指针bb = new Student();b->setName("B");分析:定义类对象基本格式是:Student a;在定义之后就已经为a这个对象分配了内存,且为内存栈;定义类指针基本格式是:St...转载 2018-05-10 14:05:24 · 3177 阅读 · 0 评论 -
c++面试知识点1
1.C/C++的五大内存分区(堆、栈、全局/静态存储区、字符串常量区和代码区)堆区:(手动申请,手动释放) 由程序猿手动申请,手动释放,若不手动释放,程序结束后由系统回收,生命周期是整个程序运行期间。使用malloc或者new进行堆的申请,堆的总大小为机器的虚拟内存的大小。 说明:new操作符本质上是使用了malloc进行内存的申请,new和malloc的区别如下: (1)malloc是C语言中的...转载 2018-05-11 12:57:58 · 177 阅读 · 0 评论 -
c++——HRESULT用法、实例
HRESULT 常被用作COM调用的返回值。充分利用HRESULT返回信息可以帮助提高我们的代码质量,提供程序的健壮性。以下是HRESULT用法小结:1. HRESULT 值及其含义。S_OK 操作成功 0x00000000S_FALSE 函数调用成功 #define S_FALSE ((HRESULT)1L)E_UNEXPECTED 意外的失败 0x8000FFFF E_NOTI...转载 2018-05-18 09:01:30 · 15432 阅读 · 0 评论 -
C++ STL之vector用法总结
介绍vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元...转载 2018-05-15 09:04:20 · 121 阅读 · 0 评论 -
C++函数的参数三种传值方式为:值传递、地址传递(指针传递,引用传递)
C++函数的三种传递方式为:值传递、指针传递和引用传递值传递:void fun(int x){x += 5; //修改的只是y在栈中copy x,x只是y的一个副本,在内存中重新开辟的一块临时空间把y的值 送给了x;这样也增加了程序运行的时间,降低了程序的效率。}void main(void){int y = 0;fun(y);cout<<\"y = \"<...转载 2018-05-08 15:58:14 · 17932 阅读 · 2 评论 -
C++ STL快速入门——String、vector、set、list、map(都是用于存储数据)用法实例
在数月之前的机试中第一次体验到STL的威力,因为自己本来一直在用C语言做开发,很多数据结构都是自己造的,比如链表、队列等,第一次接触C++ STL后发现这些数据结构都已经给我提供好了,我直接拿去调用就好了,真是超级方便。最近的项目中也遇到了STL一些容器,所以现在自己好好总结一下STL中一些最常用的容器的使用方法,方便自己日后查阅。C++ STL中最基本以及最常用的类或容器无非就是以下几个:str...转载 2018-05-22 13:33:59 · 1960 阅读 · 0 评论 -
c++ 多线程编程入门(实例)
多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对多线程的理解程度从一个侧面反映了程序员的编程水平。 其实C++语言本身并没有提供多线程机制(当然目前C++ 11新特性中,已经可以使用std::thread来创建线程了,因为还没有系统地了解过,所以这里不提了。),但Windows系统为我们提供了相关API,我们可以使用他们来进行多线程编程。创建线程的A...转载 2018-05-22 13:47:23 · 199 阅读 · 0 评论 -
C++中using的作用
1.在当前文件中引入命名空间这是我们最熟悉的用法,例如:using namespace std;2.在子类中使用 using 声明引入基类成员名称(参见C++ primer)在private或者protected继承时,基类成员的访问级别在派生类中更受限:class Base {public:std::size_t size() const { return n; }...转载 2018-08-13 16:38:13 · 7309 阅读 · 0 评论