C++/C编程笔记
tongqian_
stay hungry,stay foolish
展开
-
C++编程笔记:dll的生成与调用
1. dll的创建1.1 使用 __declspec(dllexport) 创建dll首先在VS中的Visual C++中创建一个Win32 Project,取名为Dll1。在Application Type中选择DLL,在Additional options中选择Empty project,即创建一个空的动态链接库工程。然后为工程添加一个C++源文件:Dll1.cpp,假设我要...转载 2019-03-08 22:41:29 · 282 阅读 · 0 评论 -
C++/C编程学习:梳理08---C++中内置变量的初始化
原创:https://blog.csdn.net/luoweifu/article/details/39781399如果内置类型的变量未被显示地初始化,它的值将由定义的位置决定。(1).定义在函数体之外的变量将被初始化为0;(2).定义在函数体内部的变量将不被初始化,它的值将是任意的。实例:short sn;int in;long ln;long long lln;...转载 2019-03-10 11:59:10 · 120 阅读 · 0 评论 -
C++/C编程学习:梳理09---MessageBox、::MessageBox 、AfxMessageBox三者的区别
Windows API: MessageBox();CWnd::MessageBox();MFC: AfxMessageBox();其中CWnd::MessageBox() 与 AfxMessageBox()都是对 API 函数MessageBox()的封装。关于是否需要句柄HWND的说明:1)MessageBox是API,因此它需要HWND参数指定其所属窗体。2)CW...转载 2019-03-10 12:05:19 · 570 阅读 · 0 评论 -
C++/C编程学习:梳理10---函数的指针
原文:https://blog.csdn.net/luoweifu/article/details/40709915定义函数指针是指指向函数而非指向对象的指针。像其他指针一样,函数指针也指向某个特定的类型(特定的函数类型)。函数类型由其返回类型以及形参表确定,而与函数名无关。如下声明了一个函数指针:bool(*pFunc)(int,double);...转载 2019-03-10 15:19:00 · 175 阅读 · 0 评论 -
C++/C编程学习:梳理11--回调的原理和实现
什么回调?维基百科是这样解释的:回调是一段可执行的代码通过参数传递给别一段代码,以期望在一个合适的时间调用这个参数(可执行的代码)。回调函数说白了就是定义一个函数,然后通过参数传递给另一个函数调用。回调不仅是一种技术,更是一种编程思想,上面是通过回调函数来实现的,但它不仅限于回调函数,也可以用其它的技术实现(如面向对象的实现)。案例:typedef int (*Compare)(c...转载 2019-03-10 15:27:02 · 135 阅读 · 0 评论 -
C++/C编程学习:梳理12----typedef与#define的区别
原创:https://blog.csdn.net/luoweifu/article/details/416301951.typedeftypedef故名思意就是类型定义的意思,但是它并不是定义一个新的类型而是给已有的类型起一个别名,在这一点上与引用的含义类似,引用是变量或对象的别名,而typedef定义的是类型的别名。typedef的作用主要有两点:1.1简化复杂的类型声...转载 2019-03-13 11:47:48 · 106 阅读 · 0 评论 -
C++/C编程学习:梳理13---#pragma once与#ifndef #define ...#endif的区别
原创:https://blog.csdn.net/luoweifu/article/details/425509551、#pragma once 用来防止某个头文件被多次include;#ifndef,#define,#endif 用来防止某个宏被多次定义。案例1:#pragma once .....原创 2019-03-13 11:50:14 · 118 阅读 · 0 评论 -
C++/C编程学习:梳理14—命名空间namespace
原文:https://blog.csdn.net/luoweifu/article/details/44142619在一个企业级的开发中,一个工程往往会很大,定义的类和方法也会特别多,而且还会引入很多的第三方库,这就不可避免的会有一些同名的冲突问题。在Java中有包(Package)的概念,也就是将不同功能的类分成不同的包,来解决名称的冲突,C++中是用命名空间来解决这种冲突的。定义命名...转载 2019-03-13 11:48:59 · 250 阅读 · 0 评论 -
C++/C编程学习:梳理15—const T、const T*、T *const、const T&、const T*& 的区别
原文:https://blog.csdn.net/luoweifu/article/details/45600415这里的T指的是一种数据类型,可以是int、long、doule等基本数据类型,也可以是自己类型的类型class。单独的一个const你肯定知道指的是一个常量,但const与其他类型联合起来的众多变化,你是不是就糊涂了?下面我们一一来解析。const T定义一个常量,声明的...转载 2019-03-13 11:49:04 · 1119 阅读 · 0 评论 -
C++/C编程学习:梳理16—拷贝构造函数详解
原文:https://blog.csdn.net/luoweifu/article/details/45695569目录一. 什么是拷贝构造函数二. 拷贝构造函数的调用时机1. 对象以值传递的方式传入函数参数2. 对象以值传递的方式从函数返回3. 对象需要通过另外一个对象进行初始化;三. 浅拷贝和深拷贝1. 默认拷贝构造函数2. 浅拷贝3. 深拷贝...转载 2019-03-13 11:49:16 · 298 阅读 · 0 评论 -
C++/C编程学习:梳理17—new/delete 和malloc/free 的区别
原文:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/16/2593754.html一、基本概念malloc/free:1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。...转载 2019-03-13 11:49:24 · 95 阅读 · 0 评论 -
C++/C编程学习:梳理18—三种访问权限与三种继承方式
原文:https://blog.csdn.net/luoweifu/article/details/46953343三种访问权限我们知道C++中的类,有三种访问权限(也称作访问控制),它们分别是public、protected、private。要理解它们其实也很容易,看下面了一个例子。class Person{public: Person(const string&...转载 2019-03-13 11:50:21 · 203 阅读 · 0 评论 -
C++/C编程学习:梳理19—类的多继承
在c++中一个类可以从多个基类中派生(即可以有多个父类),这就是多继承。多继承的方式主要有两种:1. 简单版本 类C会同时拥有类A和类B的特性(属性和方法,也就是两个类的所有成员)。这种方式很简单这里就不多说,主要讲下面这种方式。2. 复杂版本 同样的,这个结构中类C也会同时拥有类A和类B的特性,但这就会有一个问题,类B1和B2都继承自A,那么类C的对象会同时包含两个A的对...原创 2019-03-13 11:49:40 · 170 阅读 · 0 评论 -
C++/C编程学习:梳理20—“隐藏实现,开放接口”的实现方案
原创:https://blog.csdn.net/luoweifu/article/details/47030857 为什么要有接口?接口就是一个程序与其它程序交流的窗口。就比如有一个电视机,我并不需要知道它是怎样工作的,我只要知道按电源键就可以开启电视,按节目加(+)减(-)可以切换电视频道就可以了。Java程序员都知道Java中有interface可以实现...转载 2019-03-13 11:49:53 · 285 阅读 · 0 评论 -
C++/C编程学习:梳理07--指针的引用
原文:https://blog.csdn.net/luoweifu/article/details/39119487假设有一个书的类Book,基定义如下:structBook{stringisbn;stringname;doubleprice;stringauthor;};现在需要这样一个函数:有一个文件存放着一本书的相关信息(...转载 2019-03-10 11:32:24 · 98 阅读 · 0 评论 -
C++/C编程学习:梳理06---makefile总结04
转 Makefile讲义(4)——书写命令 转 makefile讲义(5)——使用变量 转 makefile讲义(6)——条件判断 转 Makefile讲义(7)——使用函数 转 Makefile讲义(8)——make 的运行 转 Makefile讲义(9)——隐含规则 转 Makefile讲义(10)——更新函数库文件 转 Makefile讲义(11)——后序 ...转载 2019-03-10 11:03:17 · 173 阅读 · 0 评论 -
C++/C编程学习:梳理06---makefile基础03
一、规则举例foo.o : foo.c defs.h # foo模块cc -c -g foo.c看到这个例子,各位应该不是很陌生了,前面也已说过,foo.o是我们的目标,foo.c和defs.h是目标所依赖的源文件,而只有一个命令“cc -c -g foo.c”(以Tab键开头)。这个规则告诉我们两件事:1、文件的依赖关系,foo.o依赖于foo.c和defs.h的文件,如果foo.c...转载 2019-03-10 10:59:47 · 255 阅读 · 0 评论 -
C++编程笔记:在C#中使用C++编写的类
现在在Windows下的应用程序开发,VS.Net占据了绝大多数的份额。因此很多以前搞VC++开发的人都转向用更强大的VS.Net。在这种情况下,有很多开发人员就面临了如何在C#中使用C++开发好的类的问题。下面就用一个完整的实例来详细说明怎样用托管C++封装一个C++类以提供给C#使用。比如,现在有一个工程名为NativeCppDll的由C++编写的DLL,里面输出了一个CPerson...转载 2019-03-08 23:13:02 · 157 阅读 · 0 评论 -
C++/C编程学习: 调用约定__cdecl、__stdcall和__fastcall
原文地址:https://blog.csdn.net/luoweifu/article/details/52425733转载 2019-03-08 23:49:09 · 165 阅读 · 0 评论 -
C++/C编程学习:带你理解多字节编码与Unicode码
原文地址:https://blog.csdn.net/luoweifu/article/details/493829691、多字节字符与宽字节字符char与wchar_t我们知道C++基本数据类型中表示字符的有两种:char、wchar_t。char叫多字节字符,一个char占一个字节,之所以叫多字节字符是因为它表示一个字时可能是一个字节也可能是多个字节。一个英文字符(如’s’)...转载 2019-03-09 12:04:34 · 197 阅读 · 0 评论 -
C++/C编程学习:#include 与 #include" "的区别
<>先去系统目录中找头文件,如果没有在到当前目录下找。所以像标准的头文件 stdio.h、stdlib.h等用这个方法。" "首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。...原创 2019-03-14 22:22:58 · 153 阅读 · 0 评论 -
C++/C编程汇总:OpenMP的使用
在VS中设置编译选项(以启用OpenMP)1、Open the project'sProperty Pagesdialog box.(在解决方案资源管理器中右击项目图标)打开项目属性对话框2、Expand theConfiguration Propertiesnode. 展开配置属性节点3、 Expand theC/C++node....原创 2019-03-09 16:56:09 · 2220 阅读 · 0 评论 -
C++/C编程指南:C++11 并发多线程01
C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是<atomic> ,<thread>,<mutex>,<condition_variable>和<future>。<atomic>:该头文主要声明了两个类, std::atomic 和 std::atomic_flag,另外还声明了一套 C 风格的原子类型和与...原创 2019-03-09 17:33:14 · 117 阅读 · 0 评论 -
C++/C编程指南:C++11 并发多线程02—std:mutex详解
转:https://www.cnblogs.com/haippy/p/3237213.htmlMutex 系列类(四种)std::mutex,最基本的 Mutex 类。 std::recursive_mutex,递归 Mutex 类。 std::time_mutex,定时 Mutex 类。 std::recursive_timed_mutex,定时递归 Mutex 类。std::m...转载 2019-03-09 18:02:05 · 125 阅读 · 0 评论 -
C++/C编程学习:梳理01---C::STL标准入门汇总
原文:http://www.cnblogs.com/shiyangxt/archive/2008/09/11/1289493.html第一部分:(参考百度百科)一、STL简介STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工...转载 2019-03-09 21:21:57 · 187 阅读 · 0 评论 -
C++/C编程学习:梳理02---C++库介绍
准标准库——BoostBoost 库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。 Boost库由C++标准委员会库工作组成员发起,在C++社区中影响甚大,其成员已近2000人。 Boost库为我们带来了最新、最酷、最实用的技术,是不折不扣的"准"标准库。Boost中比较有名气的有这么几个库:Regex :正则表达式库Spi...转载 2019-03-09 21:49:59 · 376 阅读 · 0 评论 -
C++/C编程学习:梳理03--string.h cstring和string的区别
原文:https://blog.csdn.net/luoweifu/article/details/20242307<string.h><string.h>是C版本的头文件,包含比如strcpy、strcat之类的字符串处理函数。<cstring>在C++标准化(1998年)过程中,为了兼容以前,标准化组织将所有这些文件都进行了新的定义,加入...转载 2019-03-09 22:02:05 · 140 阅读 · 0 评论 -
C++/C编程学习:梳理04---makefile基础01
概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefi...转载 2019-03-10 10:53:03 · 169 阅读 · 0 评论 -
C++/C编程学习:梳理05---makefile基础02
原文:http://blog.csdn.net/haoel/article/details/2888一、Makefile里有什么?Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多个的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则。由于我们的mak...转载 2019-03-10 10:54:44 · 120 阅读 · 0 评论 -
C++/C编程学习:使用nuget管理c++库的原理
转:https://blog.csdn.net/bjrxyz/article/details/51777627如果要做一个应用程序,我们往往会用到很多第三方库,这时库包管理工具就很重要,如js/npm,c#/nuget,php/composer,jave/maven之类,但vc++一直没一个很舒服的包管理工具。很多c++第三方库对vc++都非常不友好,谁能轻而易举地在vc++上编译一个open...转载 2019-03-13 16:39:32 · 3080 阅读 · 0 评论