4 羽生少年

尚未进行身份认证

我要认证

格物致知,知行合一!

等级
TA的排名 18w+

同一类的不同对象,在调用相同的成员函数时,入口地址是相同的

一般成员函数的第一个参数默认是this(可以不写),this指针指向调用这个函数的对象,所以可以给函数传入不同的参数,输出不同的值,而且互不影响。但是静态成员函数没有this指针。定义的对象,编译器应该是分配了两个内存,内存之间数据是相互不影响的。你可以new出来指针查看变量地址。如果是打印的话,只能重载了或者用多态即同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间,只要不是静态成员函数,互相不会发生关系,也不存在冲突的问题。...

2020-10-22 13:47:02

_T

_T是一个宏,作用是让你的程序支持Unicode编码。因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理像中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。他的作用是让你的程序支持Unicode编码,因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理像中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式

2020-09-01 11:25:33

线程执行顺序之一

一般情况下,线程在主函数创建,函数分配在栈区,遵循先进后出规则,先创建后运行#include <stdio.h>#include <unistd.h>#include <pthread.h>int var = 8;void *thread_1(void *arg){ while(1) { printf("this is my new thread1: var++\n"); var++; ...

2020-07-27 12:27:48

Linux系统调用

系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间人,把用户进程的请求传达给内核,待内核把请求处理完毕后再将处理结果送回给用户空间。系统服务之所以需要通过系统调用来提供给用户空间的根本原因是为了对系统进行“保

2020-07-20 23:38:31

Linux的进程/线程间通信方式总结

Linux系统中的进程间通信方式主要以下几种:同一主机上的进程通信方式* UNIX进程间通信方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal)* System V进程通信方式:包括信号量(Semaphore), 消息队列(Message Queue), 和共享内存(Shared Memory)网络主机间的进程通信方式* RPC: Remote Procedure Call 远程过程调用* Socket: 当前最流行的网络通信方式, ...

2020-07-10 12:30:55

Linux多线程之线程同步(条件变量)

https://www.cnblogs.com/secondtonone1/p/5580203.html

2020-07-10 08:25:05

C++11thread之detach()与join()的函数对比

在声明一个std::thread对象之后,都可以使用detach和join函数来启动被调线程,区别在于两者是否阻塞主调线程。(1)当使用join()函数时,主调线程阻塞,等待被调线程终止,然后主调线程回收被调线程资源,并继续运行;(2)当使用detach()函数时,主调线程继续运行,被调线程驻留后台运行,主调线程无法再取得该被调线程的控制权。当主调线程结束时,由运行时库负责清理与被调线程相关的资源。...

2020-07-05 15:44:26

Linux环境崩溃生成core文件以及调试

Windows环境崩溃问题可根据vs调试工具查看,Linux同样可以查看调用堆栈的信息,只是需要更改Linux设置,使程序崩溃时候产生core文件。然后gdb调试即可。1产生core文件方法产生coredump的条件,首先需要确认当前会话的ulimit –c,若为0,则不会产生对应的coredump,需要进行修改和设置。ulimit -cunlimited (可以产生coredump且不受大小限制),这种设置仅对当前生效,如果想永久生效那么需要在/etc/profile中加入以...

2020-06-29 00:17:24

博客园学习

博客园https://www.cnblogs.com/DswCnblog/category/847018.html

2020-06-24 14:35:23

C++ 11 创建和使用共享 weak_ptr

1、为什么需要weak_ptr?在正式介绍weak_ptr之前,我们先来回忆一下shared_ptr的一些知识。我们知道shared_ptr是采用引用计数的智能指针,多个shared_ptr实例可以指向同一个动态对象,并维护了一个共享的引用计数器。对于引用计数法实现的计数,总是避免不了循环引用(或环形引用)的问题,shared_ptr也不例外。我们先来看看下面这个例子:#include <iostream>#include <memory>#include &l

2020-06-24 14:10:56

C++ 11 创建和使用 shared_ptr

shared_ptr的类型是C + +标准库中一个聪明的指针,是为多个拥有者管理内存中对象的生命周期而设计的。在你初始化一个shared_ptr后,你可以复制它,把函数参数的值递给它,并把它分配给其它shared_ptr实例。所有实例指向同一个对象,并共享访问一个“控制块”,即每当一个新的shared_ptr被添加时,递增和递减引用计数,超出范围,则复位。当引用计数到达零时,控制块删除内存资源和自身。下图显示了指向一个内存位置的几个shared_ptr实例。无论什么时候,当内存资源被...

2020-06-24 14:09:20

C++11 unique_ptr用法

unique_ptr不共享它的指针。它无法复制到其他unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库 (STL) 算法。只能移动unique_ptr。这意味着,内存资源所有权将转移到另一unique_ptr,并且原始unique_ptr不再拥有此资源。我们建议你将对象限制为由一个所有者所有,因为多个所有权会使程序逻辑变得复杂。因此,当需要智能指针用于纯 C++ 对象时,可使用unique_ptr,而当构造unique_ptr时,可使用make_uniqueHe...

2020-06-24 11:55:59

文件描述符

内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。每一个文件描述符会与一个打开文件相对应,同时,不同的文件描述符也会指向同一个文件。相同的文件可以被不同的进程打开也可以在同一个进程中被多次打开。系统为每一个进程维护了一个文件描述符表,该表的值都是从0开始的,所以在不同的进程中你会看到相同的文件描述符,这种情况下相同文件描述符有可能指向同一个文件,也有可能

2020-06-17 11:54:52

简谈C/C++学习路线

问: 为啥我学完了C语言或者C++,却还是啥东西也做不出来?答: 编程语言学完了就能做出东西那也真是天才哇!应该说语言学得就算再精通,它其实也只代表完成了“最小的”那一部分,和实际上手干活之间还是有一个非常大的鸿沟,这个鸿沟就表现为下文即将详述的 编程基础四大件 + 应用实践编程。问: 为什么C/C++写出来的东西都是运行于黑乎乎的命令行?这玩意真有用吗?答: 嘿嘿,...

2020-04-23 21:31:37

Ubuntu 16.04 下 Vim配置

注:只对各个用户在自己的当前目录下的.vimrc修改的话,修改内容只对本用户有效,要想全部有效,可以修改/etc/vim/vimrc.在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能的。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置...

2020-04-19 18:57:32

Ubuntu 16.04 下 Vim安装

默认已经安装了VIM-tinylinuxidc@linuxidc:~$ locate vi | grep 'vi$' |xargs ls -allrwxrwxrwx 1 root root 17 12月 9 21:12 /etc/alternatives/vi -> /usr/bin/vim.tinylrwxrwxrwx 1 root root 20 12月 9 21:...

2020-04-19 18:54:52

多线程底层执行原理

说道底层运行,那么是不是就是需要依靠CPU啊;那,各位之前有没有听过一句话叫做,一个CPU在同一个时间片只能执行一个程序;什么意思呢?就是,你的程序是不是都运行在一个CPU上啊,那你真正一个CPU在同一个时间片里是不是只能执行一个程序呀,那这个程序究竟要执行那个程序,是不是就需要通过线程之间时间片的一个争抢;时间片:微小的时间段;多线程说白了就是时间片的争夺,那个线程获取了时间...

2020-04-12 19:39:54

C++ 计数排序

计数排序的原理:(1)首先,找出最大的元素,给“count[ ]”申请“最大元素的下标+1”个单元(因为数组下标是从0开始的,所以要+1);(2)然后,统计每个元素出现的次数,把次数存到“count[ ]”里;(3)最后,通过一个元素出现的次数-1,从而算出正确顺序的位置,再把元素放进去,就有顺序了。 因为不知道范围的大小,所以需要申请内存,如果知道范围的大小,就可以直接声明。...

2019-09-02 23:15:18

求int在二进制存储时1的个数(C++)

输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。输入:5输出:2代码如下:#include<iostream>#include<string>#include<cstring>using namespace std;int main() { int input; int output=0; cin >> inp...

2019-06-29 20:29:27

判断字符串中的括号是否匹配——c和c++实现

判断字符串中的括号是否匹配递归实现:先检搜一对匹配的括号,再对里面的内容进行匹配,匹配完后再继续往下匹配……代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>// 在start与end中搜索匹配int fun(char *str, int start, int ...

2019-04-14 12:52:30

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。