
C++
文章平均质量分 53
C++相关
金色的省略号
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++11的新特性
2.1.1 long long类型 除字符和布尔类型外,其他整形用于表示不同尺寸的整形,一个long long 至少和一个long一样大,其中,数据类型long long 是在C++11中新定义的 2.2.1 列表初始化 作为C++11新标准的一部分,用花括号来初始化变量得到了全面应用,这种初始化的形式被称为列表初始化 std::vector<string>...原创 2023-08-17 09:53:00 · 427 阅读 · 0 评论 -
C++标准库实现文本查询
文本查询要求: 在一个给定的文件中查询单词,查询结果:是单词在文件中出现的次数,以及其所在行的列表。如果一个单词在一行中出现多次,此行只列出一次。行按升序输出。 在C++primer第五版,第十二章 动态内存,第三节给出了实现文本查询的代码,程序设计:TextQuery类读取文件并存储文件(数据成员存储文件,存储每个单词所在的行),查询并以返回一个QureyResult类对象的方式返回查询结果(QureryResult类的数据成员以shared_ptr方式与TextQuery类共享数据),另函原创 2025-02-16 00:25:21 · 905 阅读 · 0 评论 -
C++面向对象实现算术表达式树
表达式(-5)*(3+4)对应的树如图,包括常数、一元运算符和二元运算符的结点,结点为图中的圆圈,边用箭头表示,一个结点或连接一个子结点、两个子结点或不连接子结点。结点有三种形式:表示整数表达式,包含一个整数值,无子结点,另外两个分别表示一元表达式和二元表达式包含一个操作符,分别有一个或两个子结点,三种形式对应三个类。三个类抽象出来一个结点概念,为它们的基类,即结点类,有子结点的类用包装基类指针的句柄表示“边”,句柄类代码(包装基类指针,动态绑定,隐藏继承层次,引用计数避免复制),其中句柄的使用是核心,原创 2025-07-16 21:43:17 · 224 阅读 · 0 评论 -
标准库算法函数:std::find_if
下面是函数原型该函数,用来在容器中查找符合条件的元素,原创 2024-03-12 20:18:00 · 1423 阅读 · 0 评论 -
派生类对象、虚析构、虚继承、虚基类
因为当一个基类指针指向一个动态构造的派生类的对象时,在释放对象的空间时,如果基类析构函数不是虚析构,只会调用基类析构,而不会调用派生类析构,造成内存泄漏。在多重继承下,一个基类可以在派生层次中出现多次,程序会通过继承层次多次继承同一基类的类,类通过虚继承指出它希望共享其虚基类的状态,,基类部分是属于派生类的组成部分,是派生类继承基类的,基类部分由基类构造函数构造,但是,,派生类对象只能访问基类部分的共有,派生类内不能访问基类部分的私有。,共享的基类子对象称为虚基类。原创 2024-01-23 11:16:36 · 540 阅读 · 0 评论 -
转换操作符转换类型:普通函数指针(普通函数、类的静态函数)、类的成员函数指针
转换操作符是一种特殊的类成员函数它定义将类类型值转变为其他类型值的转换这里,type表示内置类型名、类类型名 或 由类型别名所定义的名字,本文讨论转换普通函数指针类型、类的静态函数指针类型以及转换类的成员函数指针类型。原创 2024-01-18 22:33:25 · 1037 阅读 · 0 评论 -
基类的友元类,可以访问其派生类的私有虚函数
我们知道一个基类的友元类,并不是其派生类的友元类 ,原创 2024-01-13 15:11:44 · 557 阅读 · 0 评论 -
文本单词查询复合表达式求值的实现案例分析
本文讨论的“”案例,来自C++ primer第四版,该案例面向对象编程和泛型编程,,是综合性很强的程序。原创 2024-01-12 16:45:14 · 1119 阅读 · 0 评论 -
C语言(C&C++程序设计基础, 电子科技大学MOOC)
一、编程作业1、在屏幕上输出“hello! welcome to computer world!”提示:注意所有符号都是英文,最后没有回车。将要求输出字符串之外的所有printf或者cout的输出全部删除将return 0;之前的getchar();或者system("pause");等暂停程序运行的输出都删除。提交之前先在自己的开发环境下运行成功再拷贝到作业区提...原创 2019-10-07 10:41:00 · 1955 阅读 · 0 评论 -
输出分离与输出抽象
【代码】输出分离与输出抽象。原创 2023-11-22 13:48:23 · 145 阅读 · 0 评论 -
理解复制构造和赋值操作符之间的区别
【代码】理解复制构造和赋值操作符之间的区别。原创 2023-11-20 16:22:49 · 147 阅读 · 0 评论 -
函数指针、函数类型、函数形参
【代码】函数指针数组作为函数参数。原创 2023-11-20 15:47:37 · 168 阅读 · 0 评论 -
元组tuple存储标准库function实例对象( 包装各种类对象及其成员函数 )、解包元组对象(C++17)
先把各种类及其对象包装成标准库function实例对象,并存储到元组tuple对象,创建用来解包的模板函数,解包元组,并使用function函数对象。原创 2023-10-16 20:27:19 · 208 阅读 · 0 评论 -
function+bind实现多态(松耦合)
基类定义虚函数,子类实现虚函数,使用基类指针指向子类对象,从而实现多态,,这里没有继承、没有指针、没有虚函数、松耦合…将某类对象及其行为包装为模板类function的实例对象,或以模板函数bind将某类对象及其行为包装为模板类function的实例对象,定义包含模板类function的实例对象的Base类,使用Base类可以表现为多态性。原创 2023-10-16 09:32:15 · 552 阅读 · 0 评论 -
可变参数模板、可变参数存储为元组tuple、元组解包为函数参数(C++14标准)
可变参数模板,可变参数存储为元组,元组解包为函数参数原创 2023-10-10 17:04:25 · 749 阅读 · 0 评论 -
对象与成员函数指针 function+bind
function模板类的构造函数,把对象与成员函数绑定,重载了(),利用对象调用成员函数。bind模板函数,把对象与成员函数绑定,返回function对象。原创 2023-10-09 15:50:42 · 383 阅读 · 0 评论 -
文件输入输出
C++的I/O流C++的I/O流是带有缓冲的,使用 get()/getline()等函数,了解缓冲对输入的影响调用文件流类中的get()函数读文件内容,文件位置指示器会向文件尾部移动一个单位,get函数读的是一个字符,移动的单位是一个字节win10系统,因为访问C盘需要管理员权限,使用ostream 对象无法在该盘创建文件。C++17 标准 filesystem类库filesyste...原创 2019-06-29 15:48:00 · 69 阅读 · 0 评论 -
复数四则运算(友元、异常处理)
友元函数、异常处理原创 2019-07-08 17:54:00 · 68 阅读 · 0 评论 -
Easy-X,EGE
一、Easy-X EasyX 是针对 C++ 的图形库,可以帮助 C 语言初学者快速上手图形和游戏编程。 EasyX 绘图库目前支持 Visual C++ 6.0 / 2008 ~ 2017,下载的压缩包解压缩后,执行 Setup.hta 安装即可;如果安装程序找不到vc,可以用解压缩软件打开安装文件,把include、lib文件解压出来,手动配置即可,如vc++6.0, easyx...原创 2020-06-28 20:50:00 · 122 阅读 · 0 评论 -
对象或对象的引用与私有成员变量
1.对象引用与对象指针:https://www.cnblogs.com/Free-Thinker/p/4950303.html2.对象作为函数参数与对象引用作为函数参数:对象作为函数参数,是复制传递,会调用拷贝构造函数,通过对象参数,不可以改变对象成员变量的值对象引用作为参数,是引用传递,传递的是对象的地址,通过对象引用,改变对象成员变量的值3.在类成员函数中,函数的参数为该类的对象或...原创 2019-04-25 23:57:00 · 235 阅读 · 0 评论 -
运算符重载
> 、、 +、 前置++、后置++、原创 2019-07-15 17:41:00 · 58 阅读 · 0 评论 -
Array类模板
1 #include <iostream> 2 #include <vector> 3 #include <limits> 4 using namespace std; 5 6 template <typename T> 7 class Array{ 8 T* data_; 9 int...原创 2019-07-08 14:52:00 · 50 阅读 · 0 评论 -
日记3----C++专用
1、C++ 基类定义有纯虚函数,则子类必须重写纯虚函数,否则不能实例化。2、for_each //Applies functionfn to each of the elements in the range[first,last)./*完成以下程序,使得输入的整数x,以及若干正整数,将大于x的正整数输出;然后输入若干字符串,将字符串长度大于x的字符串输出 ...原创 2020-03-23 21:20:00 · 273 阅读 · 0 评论 -
C++ VS Code 环境配置
1、安装MinGW/GCC编译器2、配置环境变量 比如 E:\MinGW\bin;3、安装vscode在cmd/powershell,输入code .,可以打开vscode4、安装vscode插件打开vscode,按ctrl+p打开快速命令框,输入以下命令后等待ext install cpptools下载安装插件C/C++、C++ Intellisense5、配置.vs...原创 2019-09-08 12:09:00 · 66 阅读 · 0 评论 -
C++中 公有继承 私有继承 和保护继承的区别
公有继承(public)、私有继承(private)和保护继承(protected)三种继承方式,可见即可以访问,不可见即不可以访问。1. 公有继承方式:基类成员的可见性对派生类来说,基类的公有成员和保护成员可见:基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态;基类的私有成员不可见:基类的私有成员仍然是私有的,派生类不可访问基类中的私有成员。基类成员的可见性对派生类对象...原创 2019-07-07 10:36:00 · 76 阅读 · 0 评论 -
C++ 复数四则运算
成员函数,友元函数,异常处理原创 2019-07-08 21:02:00 · 104 阅读 · 0 评论 -
C++ Lambda表达式
C++ 11 标准的,Lambda表达式,基本语法如下:[capture list] (parameter list) -> return type { function body } 测试代码#include <stdio.h>int main(){ int a = 4, b = 5; /* 注意,这是一个语句,分号结...原创 2020-06-24 16:53:00 · 84 阅读 · 0 评论 -
带有初始化器的if语句 C++17
1 #include <iostream> 2 3 int foo(int arg) { // do something 4 return (arg); 5 } 6 7 int main() { 8 9 if (auto x = foo(42); x > 40) {10 // do something with x1...原创 2019-05-30 22:43:00 · 74 阅读 · 0 评论 -
double转换为string 及代理构造函数
1 #include <iostream> 2 /* #include <string> 3 #include <sstream> */ 4 class C 5 { 6 int x = 0; 7 public: 8 //1. 9 C(int x):x{x}{10 std::cout<<"C(...原创 2019-06-05 10:13:00 · 104 阅读 · 0 评论 -
解析 12-45
1 #include <iostream> 2 #include <string> 3 4 class Parse 5 { 6 private: 7 std::string str; 8 public: 9 Parse(std::string str)10 {11 this->str = str;...原创 2019-05-28 18:30:00 · 50 阅读 · 0 评论 -
为Eclipse添加C/C++开发工具
3. ->Next->Finish, 重启Eclipse ,Help ->About Eclipse, 点选C/C++图标 OK,如看不到C/C++图标,在Eclipse的右上角Quick Access框里输入C,选中C/C++Projects(C/C++)1. 创建c工程:File->New->C Project->Executable,填写Project name ,选择Location,选Empty Project ,MinGW GCC,Finish。添加 -std=c++11。原创 2019-05-29 04:47:00 · 1248 阅读 · 0 评论 -
VS2017解决方案分组
新建工程,新建解决方案,在解决方案右键,添加,新建解决方案文件夹。这样是解决方案分组的一个方法。拖动工程放入到解决方案文件夹,分组目的达到。注意:解决方案文件夹不可以与工程名重名。...原创 2019-05-31 10:42:00 · 51 阅读 · 0 评论 -
std::initializer_list模板类
使用std::initializer_list模板类,必须包含头文件<initializer_list>其对象是一个括号内以逗号分隔的元素列表,可以传参。1 std::initializer_list<char> il = { 'o', 'k', '\0' };2 std::cout<<il.begin()<<std::e...原创 2019-05-31 09:59:00 · 51 阅读 · 0 评论 -
const 与 常量
一、const 常量 (常变量)const int a = 5; // a是一个int常量,是符号常量(/命名常量), 5是字面常量 int b; cin >> b; const int a = b; //a 不是常量,是常变量 // int arr[a]; // errorC语言,const修饰的变量被称为常变量,const int ...原创 2019-05-31 23:30:00 · 53 阅读 · 0 评论 -
继承、虚函数、运行时多态 与 静态多态截图
1 #include <string> 2 #include <iostream> 3 4 class A{ 5 public: 6 virtual std::string toString(){ 7 //std::string toString(){ 8 return "A"; 9 }10 };11 ...原创 2019-06-09 20:37:00 · 40 阅读 · 0 评论 -
无参构造函数、有参构造函数、容器array
1 #include <iostream> 2 #include <array> 3 4 class Circle 5 { 6 private: 7 double r = 1.0;//类成员同时有就地初始化和构造函数列表初始化,则就地初始化忽略 8 public: 9 Circle() = default;//强制编译器,无参构造函...原创 2019-05-28 23:00:00 · 71 阅读 · 0 评论 -
C++ SUBLIME TEXT3 环境配置
一、第一种方法1.New Build System,设置C++.sublime-build编译文件{ "path": "E:\\MinGW\\bin", "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\"", "file_regex": "^(..[^:]*):([0-9]+):?...原创 2019-02-09 11:30:00 · 116 阅读 · 0 评论 -
C++ Notepad++ 环境配置
1、安装MinGW/GCC编译器2、配置环境变量 比如 E:\MinGW\bin;3、安装Notepad++4、Notepad++中配置编译与运行命令cmd /k g++ -o $(CURRENT_DIRECTORY)\$(NAME_PART).exe "$(FULL_CURRENT_PATH)" & PAUSE & EXITcmd /k "$(CURRENT_...原创 2019-02-24 00:46:00 · 177 阅读 · 0 评论 -
编程题(C/C++程序设计,同济大学mooc)
仅供参考,请指正1、以下程序的功能是借助一个变量交换两个已知数据的值,程序中存在一些错误,修改这些错误并调试程序。 1 #include "iostream" 2 3 using namespace std; 4 5 int main( ) 6 7 { 8 9 ...原创 2019-10-23 15:54:00 · 1684 阅读 · 0 评论 -
句柄类的对象与智能指针
句柄类, 来自于C++ 沉思录的概念 百度百科: 句柄(handle)是C++程序设计中经常提及的一个术语,它并不是一种具体的、固定不变的数据类型或实体,而是代表了程序设计中的一个广义的概念,句柄一般是指获取另一个对象的方法 —— 一个广义的指针,它的具体形式可能是一个整数、一个对象或就是一个真实的指针,而它的目的就是建立起与被访问对象之间的唯一的联系 句柄(ha...原创 2020-08-28 10:46:00 · 478 阅读 · 0 评论