C++学习
记录我的C++学习过程
shadowgully
这个作者很懒,什么都没留下…
展开
-
C++异常处理相关用法及底层机制
一、异常的定义及C++中的异常处理 异常是指存在于运行时的反常行为,这些行为超出了函数正常功能的范围。典型的异常包括失去数据库连接以及遇到意外输入等。 **异常检测:**当程序的某部分检测到一个它无法处理的问题时,需要用到异常处理。此时,检测出问题的部分应该发出某种信号以表明程序遇到了故障,无法继续下去了,而且信号的发出方无须知道故障将在何处得到解决。一旦发出异常信号,检测出问题的部分也就完成了任务。 **异常处理:**如果程序中含有可能引发异常的代码,那么通常也会有专门的代码处理问题。异常处理原创 2020-10-24 18:36:37 · 764 阅读 · 0 评论 -
C++ regex库常用函数及实例
简介regex是C++标准库中用于正则表达式(regular expression)的部分。大致有如下常用组件:组件名称作用regex表示有一个正则表达式的类regex_match将一个字符序列与一个正则表达式匹配regex_search寻找第一个与正则表达式匹配的子序列regex_replace使用给定格式替换一个正则表达式sregex_iterator迭代器适配器,内部调用regex_search来遍历一个string中所有匹配的子串sm原创 2020-10-10 19:29:08 · 983 阅读 · 0 评论 -
C++输出虚表信息以及利用虚函数表和函数指针调用类的方法
#include<iostream>using namespace std;using func = void(*)();//func为函数指针类using vtbl = func; //虚表中保存函数指针,因此虚表的值即为函数指针using vtblAddr = vtbl*;//虚表地址,虚表地址保存在类的实例中class A{public: virtual void doit() { cout << "calling A.doit" <<原创 2020-09-17 15:09:47 · 324 阅读 · 0 评论 -
Visual Studio2019 基于WSL的Linux C++开发
Visual Studio2019 基于WSL的Linux C++开发 WSL是“Windows Subsystem for Linux”的缩写,WSL让我们能够在Window10下直接使用Linux命令行,相比虚拟机而言,其开启速度要快上很多;相比云主机,又无需付费,且由于WSL位于本地,在VS中编译速度相对要快上许多。 WSL的安装网上有许多教程,就不多加叙述。不过,推荐一个我觉得还不错的教程,在Window10的Microsoft Store中搜索“WSL Guid原创 2020-05-21 13:56:12 · 1195 阅读 · 0 评论 -
Visual Studio 2019Linux开发添加动态链接库参数
上一篇文章Visual Studio 2019 基于Linux平台的C++开发中介绍了如何配置通过VS进行Linux C++开发的环境。这一篇主要介绍如何使用libpthread.so这类的动态链接共享库。如果是在Linux平台,GCC或者g++,想要编译含有例如pthread的代码,需要如下的命令g++ -o exefile -std=c++0x main.c -lpthread #-std=c++0x 开启对c++11标准的支持#-lpthread 加载动态链接库libpthread.so但原创 2020-05-19 15:50:30 · 2690 阅读 · 8 评论 -
Visual Studio 2019 基于Linux平台的C++开发
由于很多unix特有的函数无法在Windows上使用,而Vim又用的不太顺手,突然想到最初用vs的时候有一个基于Linux的C++开发。在网上找了很多教程后,发现还是官方的教程比较详细,不过其中也有一些踩过的坑。使用VisualStudio C++的Linux开发官方文档中有的内容就不重复了。vs安装相关插件,创建项目之后,依次选择“工具”->“选项”->“跨平台”->“连接管理器”,点击添加新建连接,如果你有远程主机\虚拟机的话,输入IP地址、端口号(默认22)、用户名、选择验证方式原创 2020-05-19 13:58:42 · 2103 阅读 · 0 评论 -
C++ string和范围for语句
初始化//string 类型的初始化方法string s1;string s2 = s1;string s3 = "lol";string s4("JarvenIV");string s5(7,'7'); //连续n个字符组成的串读写string s;cin>>s;cout<<s;范围for语句//c++范围for语句,处理字符串中的每个字符/...原创 2020-01-22 15:57:47 · 769 阅读 · 0 评论 -
使用函数指针解决函数重载二义性调用问题
使用函数指针解决函数重载二义性调用问题当实参对应重载函数的多个可行函数,且每个可行函数各自在一个实参上实现了更好的匹配时,编译器会因为程序具有二义性而报错。例如:#include<iostream>using std::string;using std::cout;using std::cin;using std::endl;void ff(int, int){//...原创 2020-01-21 17:06:36 · 566 阅读 · 0 评论