c++
Anatoleabc
这个作者很懒,什么都没留下…
展开
-
c++拷贝函数
2019.6.14 c++拷贝构造函数详解一、什么是拷贝构造函数首先对于普通类型的对象来说,他们之间的复制是很简单的,例如:int a = 100;int b = a;而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include<iostream>using namespace std;clas...转载 2019-06-14 15:58:50 · 19242 阅读 · 0 评论 -
char*与char[]定义的区别
char* s1=”abc”;s1是一个指针,s1所指向的地址的内容是不可改变的,但是s1可以指向其他地址。s1是指向字符串常量的,它存储在里不可被修改。如下:char* s1="abcd";s1[2]='z'; //错误:编译时能通过运行的时候会报错s1="xyz"; //可以将指针指向其他内容cout<<s1[2]<<endl;char...原创 2019-08-24 21:26:07 · 3771 阅读 · 2 评论 -
CSingleLock
CSingleLock简介CSingleLock没有基类。一个CSingleLock类对象代表一种访问控制机制,这种机制用于控制在一个多线程程序中对一个资源的访问。为了使用同步类CSemaphore,CMutex,CCriticalSection,和CEvent,你必须创建一个CSingleLock或CMultiLock对象来等待和释放这个同步对象。当你只需要每次等待一个对象时,可以使用C...原创 2019-08-10 17:04:02 · 792 阅读 · 0 评论 -
VS项目中的筛选器(filter)
原文地址:vs项目中的筛选器使用VS2010开发项目时,有时源码文件过多,想按功能进行分类管理,这时候就可以使用“筛选器(filter)”添加筛选器很简单,在项目上右键单击,选择“添加 | 新建筛选器”,然后命名就可以了。之后向筛选器中添加文件。创建筛选器之后,要注意工程目录下的“*.filters”文件一定不能删掉,因为这个文件就是用来记录筛选器的。还有一个问题就是,有时候不...转载 2019-08-01 17:32:07 · 3567 阅读 · 0 评论 -
外部依赖项总结
一、什么是外部依赖项?所谓外部依赖项就是工程中显式包含的那些头文件本身所包含的头文件(非自己定义),主要包含一些外部库。例如虽然在main里包含了一个windows.h,但是windows.h本身就包含相当多的头文件。而这些头文件又包含更多的头文件。于是你的外部依赖项就变得很庞大。若想减少外部依赖项,那就尽量避免包含不必要的头文件。不过根据编译器的行为,可能编译时应该会过滤掉那些虽然包含进来,...原创 2019-08-01 17:23:26 · 6211 阅读 · 0 评论 -
obj,dll,lib,exe总结
一个现代编译器的主要工作流程如下:源程序(source code)→预处理(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables,exe)编译:当前源代码编译成二进制目标文件(.obj文件)链接(link):将生成的.obj文件与库文件.li...原创 2019-08-03 10:56:13 · 322 阅读 · 0 评论 -
02x和2x有什么区别?
常见%02x,那么与%2x有什么区别呢?X 表示以十六进制形式输出,02 表示不足两位,前面补0输出;如果超过两位,则实际输出举例:printf("%02X", 0x345); // 345printf("%02X", 0x6); // 06而如果直接写为 %2x,数据不足两位时,实际输出,即不额外补0输出; 如果超过两位,则实际输出。printf("%2X", 0x345); ...原创 2019-08-03 10:01:41 · 1534 阅读 · 0 评论 -
c++ 的interface
先要说明的是,c++的关键字中并没有interface,但java和C#中有interface关键字,即接口。interface和class不同,interface仅有接口声明,而且所有的声明默认的访问权限是public而非private(是不是想到了c++中的struct?)。对于c++来说,这相当于抽象类的概念,即其中的成员函数都是纯虚函数,只有声明,没有实现。如:class abs...转载 2019-06-17 23:16:58 · 4840 阅读 · 0 评论 -
内联函数
(1)什么是内联函数?内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。(2)为什么要引入内联函数?当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题。另外,前面我们讲到了宏,里面有这么一个例子:#define ABS(x) ((x)>0? (x):-(x))当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的定义很容易产生二意性。 我们可...转载 2019-06-16 23:08:12 · 293 阅读 · 0 评论 -
c++ RAII机制
RAII 是 resource acquisition is initialization 的缩写,意为“资源获取即初始化”。它是 C++ 之父 Bjarne Stroustrup 提出的设计理念,其核心是把资源和对象的生命周期绑定,对象创建获取资源,对象销毁释放资源。在 RAII 的指导下,C++ 把底层的资源管理问题提升到了对象生命周期管理的更高层次。那么到底什么是 RALL 机制?使...转载 2019-06-14 17:35:12 · 301 阅读 · 1 评论 -
c++类的成员变量初始化总结
1.c++变量的初始化方式首先把需要初始化的成员变量分为几类:a.一般变量(int)b.静态成员变量(static int)c.常量(const int)d.静态常量(static const int)对应的初始化方式是:a.一般变量可以在初始化列表里或者构造函数里初始化,不能直接初始化或者类外初始化b.静态成员变量必须在类外初始化c.常量必须在初始化列表里初始...转载 2019-06-14 17:04:11 · 6765 阅读 · 0 评论 -
c++的size_t
size_t的说明定义:size_t是一种数据相关的无符号类型,它被设计得足够大以便能够存储内存中对象的大小。size_t是标准C库中定义的,应为unsigned int(占用4字节的内存空间),在64位系统中为long unsigned int(占用8字节的内存空间)它是一种“整型”类型,里面保存的是一个整数,就像int, long那样。这种整数用来记录一个大小(size)。size...转载 2019-06-14 16:31:12 · 4363 阅读 · 0 评论 -
float和double取值范围
最近在复习的时候发现基础太薄弱,对于float和double虽然了解所占字节数,但不知道他们的取值范围是多少,这对参加大厂笔试题时是十分不利的1.八种数据类型的分类如下:第一类:整型 byte short int long第二类:浮点型 float double第三类:逻辑型 boolean(它只有两个值可取true false)第四类:字符型 char2.各种基本数据类型所...转载 2019-08-29 11:23:18 · 41371 阅读 · 1 评论