![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 54
qq_31833457
天下之大,总有你的容身之处
展开
-
C++空类的大小
本文中所说是C++的空类是指这个类不带任何数据,即类中没有非静态(non-static)数据成员变量,没有虚函数(virtual function),也没有虚基类(virtual base class)。直观地看,空类对象不使用任何空间,因为没有任何隶属对象的数据需要存储。然而,C++标准规定,凡是一个独立的(非附属)对象都必须具有非零大小。换句话说,C++空类的大小不为0转载 2017-10-27 21:22:27 · 328 阅读 · 0 评论 -
getsockname函数与getpeername函数的使用
原文地址:http://blog.csdn.net/workformywork/article/details/24554813getsockname和getpeername函数getsockname函数用于获取与某个套接字关联的本地协议地址 getpeername函数用于获取与某个套接字关联的外地协议地址定义如下:[cpp] view plain co转载 2017-11-05 15:58:18 · 433 阅读 · 0 评论 -
虚函数
#include #include using namespace std;class A{public: int a=10; //void print() ---------------------------------方案1 virtual void print() ----------------------------原创 2017-11-06 17:39:12 · 119 阅读 · 0 评论 -
构造与析构
如果不显式的声明构造函数和析构函数,系统会默认生成系统生成的构造函数是无参构造函数和拷贝构造函数。如果手动定义了一个有参的构造函数,则系统不会生成默认的无参构造。这时,需要手动定义无参构造函数。构造函数与析构函数一定是public的,不能是私有的。class B{ public: int m; B() {原创 2017-11-06 17:43:51 · 170 阅读 · 0 评论 -
继承派生3
public private pritect缺省是私有继承,跟类内对象的缺省权限一样。(重要,切记)http://blog.csdn.net/fanyun_01/article/details/509853301. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所原创 2017-11-06 17:41:15 · 85 阅读 · 0 评论 -
基类与派生类的赋值
#include #include using namespace std;class A{ int a = 10;};class B:A{ int b = 20;};class C :A{ int c = 30;};int main(){ B b; C c; cout << sizeof(b) << endl; cout << sizeof(c) <原创 2017-11-06 17:49:46 · 739 阅读 · 0 评论 -
交换字节
#include #include #include using namespace std;int main(){ //cout << "Hello world!" << endl; int n=0x5678; cout << hex << n << endl; //method 1 char* hbyte=(char *)&n; ch原创 2017-11-06 17:36:16 · 436 阅读 · 0 评论 -
由深拷贝与浅拷贝引发的引用计数、写时拷贝技术
原文地址:http://blog.csdn.net/wjxxaut/article/details/52201576一、理解深拷贝和浅拷贝:[cpp] view plain copy #include using namespace std; class String { public: String(const char *str转载 2017-11-15 23:03:14 · 169 阅读 · 0 评论 -
【C++模版之旅】神奇的Traits
原文地址:https://blog.csdn.net/my_business/article/details/7891687介绍traits的文章很多,但感觉大部分文章的说明都很晦涩难懂,把一个并不很复杂的C++模板的应用描述的过于复杂。忍不住想把自己的理解跟大家分享一下,或许我也只是掌握了一点traits的皮毛而已,但也希望这些皮毛能略微抓住你的眼球,带给你一些启发。 首先,介绍tr...转载 2018-07-29 22:32:29 · 111 阅读 · 0 评论 -
【转】深入理解C++的动态绑定和静态绑定
原文地址:https://blog.csdn.net/chgaowei/article/details/6427731为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可...转载 2018-07-29 22:53:32 · 128 阅读 · 0 评论 -
[转]标准c的tmpfile生成的临时文件究竟放在哪里了?
这两天由于修改python解释器的需求,需要用到tmpfile()来生成临时文件的FILE*,但是又担心这个临时文件是否存在于磁盘的某个地方,终究会被人找到,所以就简单做了以下几点实验,看看是否可以找到tmpfile临时文件的路径。实验环境:Win7 + VS2010 一、实验一:跟踪调试写了一小段简单的tmpfile调用,然后跟踪调试,在tmpfile_s内部也没能发现这个临时文...转载 2018-08-11 00:05:14 · 1429 阅读 · 0 评论 -
创建临时文件——tmpnam,tmpfile,mktemp,mkstemp
原文地址:http://blog.sina.com.cn/s/blog_63009a040100snyv.html创建名字唯一的临时文件:推荐使用tmpfile和mkstemp,因为这两个函数创建文件的同时并打开文件,总的来说安全又可靠。tmpfile返回的是文件流指针FILE*,mkstemp返回的是文件描述符。 tmpnam,tmpfile 表头文件 #include &...转载 2018-08-11 00:14:12 · 1893 阅读 · 0 评论 -
udp通讯中的connect()和bind()函数
原文地址:http://blog.csdn.net/qq_29344757/article/details/71616748udp是一个基于无连接的通讯协议,通讯基本模型如下: 可以看出,不论是在客户端还是服务器,connect()似乎用不上,bind()在客户端也用不上,但是事实并非如此。1. udp客户端使用connect()函数udp客户端建立了socket后可以转载 2017-11-05 15:50:01 · 791 阅读 · 0 评论 -
c语言变长参数
参考文章:点击打开链接点击打开链接http://blog.csdn.net/anye3000/article/details/6593551http://blog.chinaunix.net/uid-7283526-id-2198861.htmlprintf函数原型:#include #include #include #undef printf /* Wri原创 2017-11-17 21:29:49 · 187 阅读 · 0 评论 -
Linux Socket 编程与 TCP/UDP协议流程
1、网络中进程之间如何通信?本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:消息传递(管道、FIFO、消息队列)同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)共享内存(匿名的和具名的)远程过程调用(Solaris门和Sun RPC)我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程,否则通信无从转载 2017-11-03 20:41:01 · 250 阅读 · 0 评论 -
C++中的explicit关键字
[html] view plain copy class T{ public: int a; int b; T(); ~T(); T(int iFirst, int iSecond = 4); }; T():a(0),b(0) { } T::T(int iFirst,翻译 2017-10-27 21:24:09 · 127 阅读 · 0 评论 -
模板的声明和实现为何要放在头文件中?
http://www.gois.ws/showfile.asp?id=460:0:0如何组织编写模板程序 发表日期: 1/21/2003 12:28:58 PM 发表人: Nemanja Trifunovic前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WT转载 2017-10-27 21:25:28 · 493 阅读 · 0 评论 -
my stl study-road<template>
模板的定义: template template //typename可以替代class声明模板多参数,带缺省值得: template > 如果只传给它一个参数,缺省参数可以作为第二参数使用.关键字typename typename 被作为型别之前的标识符号。 eg:[html] view plai翻译 2017-10-27 21:26:13 · 122 阅读 · 0 评论 -
继承与派生1
#include #include using namespace std;class ss1{ int n;public: ss1() { cout << "ss1-构造" << endl; } ~ss1() { cout <原创 2017-10-29 12:38:54 · 74 阅读 · 0 评论 -
继承与派生2
class ss1{public: int n,m; ss1(int x,int y ):n(x),m(y) { cout << "ss1-构造" << endl; } ~ss1() { cout << "ss1-析构" << end原创 2017-10-29 12:59:04 · 204 阅读 · 0 评论 -
常量指针与指针常量的区别
const 常量 * 指针const int * p = int const * p //常量指针int * const p //指针常量常量指针通常指向常量,不能通过指针去修改常量的值。有时也会指向变量,eg: int s = 10;const int * p = &s;但还是不能通过指针去修改指向的常量的值,可以通过 s=20,去修改这原创 2017-10-29 13:55:24 · 308 阅读 · 0 评论 -
内联函数与宏替换的区别
1)内联函数在运行时可调试,而宏不可以2)内联函数可以访问类的成员变量,而宏不可以3)在类中声明同时定义的简单的函数,会自动转换为内联函数4)编译器会对内联函数的参数类型做安全检查:内联函数具有宏的替换效果,以及普通函数的安全检查#define max(a,b) (a > b ? a : b) //一定要带括号,优先级不同会造成意想不到的结果int a=1,b原创 2017-10-29 13:56:19 · 802 阅读 · 0 评论 -
static类型
#include #include using namespace std;static const int num;class MyClass{public: static const int num=100; MyClass() { } ~MyClass() {原创 2017-10-27 21:31:13 · 813 阅读 · 0 评论 -
友元函数与只读函数
-----------------------------友元函数----------------------------friend用于声明的关键字,也可以用在类内的定义中,其定义的是静态的全局函数(vs新版本中的变化)在开放本权限的类内给其他函数或者类声明friend对全局函数开放私有权限: friend void test();对别的类开放自己的私有权限: fri原创 2017-10-29 16:34:49 · 331 阅读 · 0 评论 -
hash_map->unordered_map
转载,以备往后不时之需今天在Ubuntu下封装STL时,编译出现警告信息:This file includes at least one deprecated or antiquated header which \ may be removed without further notice at a future date. Please use a \ non-depr转载 2017-10-31 01:36:52 · 227 阅读 · 0 评论 -
windows下map类中二级指针的用法
BOOL CMap::RemoveKey(ARG_KEY key)// remove key - return TRUE if removed{ ASSERT_VALID(this); if (m_pHashTable == NULL) return FALSE; // nothing in the table UINT nHashValue; CAssoc** ppAsso原创 2017-10-31 22:53:53 · 246 阅读 · 0 评论 -
内存对齐 & 联合体(共用体)
//很多部分参考:http://blog.csdn.net/u011974987/article/details/52305364内存对齐的原则: 先介绍一个相关的概念——偏移量。偏移量指的是结构体变量中成员的地址和结构体变量地址 的差。 结构体变量中第一个成员的地址就是结构体变量的首地址。因此,第一个成员的偏 移量为0。第二个成员的偏移量是第一个成员的偏移量加上第一个成员的大原创 2017-11-01 00:25:51 · 622 阅读 · 0 评论 -
memmove 和 memcpy的区别以及处理内存重叠问题
原文:http://blog.csdn.net/li_ning_/article/details/51418400区别:memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下:[cpp] view plain copy void *memcpy(void *dst, const转载 2017-11-01 20:02:46 · 178 阅读 · 0 评论