C++
文章平均质量分 64
C++基础知识
DeRoy
微信公众号【编程学习基地】
展开
-
Linux下lua安装使用,与C/C++交互
C++和Lua交互原创 2021-12-14 09:39:40 · 1086 阅读 · 1 评论 -
C++如何调用C接口
来源:微信公众号「编程学习基地」文章目录C++调用C文件解决调用失败问题思考:那C文件能够调用C函数吗C代码既能被C++调用又能被C调用C++调用C文件一个C语言文件p.c#include <stdio.h>void print(int a,int b){ printf("这里调用的是C语言的函数:%d,%d\n",a,b);}一个头文件p.h#ifndef _P_H#define _P_Hvoid print(int a,int b);#end..原创 2021-10-10 20:18:34 · 1014 阅读 · 0 评论 -
C++子类和基类的相互转换
C++子类和基类的相互转换1️⃣基类对象可以隐式转换为子类对象2️⃣子类对象转换为基类对象,基类必须存在虚函数表,不然访问报错。#include<iostream>using namespace std;//基类class Base{public: Base() {} ~Base() {} virtual void fun() { cout << "base fun"<<endl; }private: string str;};/原创 2021-08-17 09:07:01 · 3836 阅读 · 0 评论 -
VC++2010安装教程
VC++2010的安装安装包点击安装正在安装安装完成安装后不要忘记注册产品,否则只有30天的试用期帮助-》注册产品-》秘钥(解压后的txt文件内)注册完成VC++2010环境的搭建文件-》新建-》项目选择win32控制台项目选择空项目右键源文件,选择添加项目选择C++项目项目名称必须为.cpp文件VC++2010的使用先上代码,hello world经典入门程序代码如下#include<stdio.h>int main() //公众号:gh_85306原创 2021-08-01 00:53:29 · 13210 阅读 · 9 评论 -
VS2019搭建C语言开发环境(图文教程)
来源:微信公众号「编程学习基地」文章目录VS2019搭建C语言开发环境环境测试代码VS2019搭建C语言开发环境双击VS2019,选择创建新项目选择项目类型为空项目搜索框输入空项目进行搜索或者选择C++ Windows 控制台找到空项目输入项目名称,选择项目位置,点击创建创建成功之后需要添加C++文件main.c,鼠标移至源文件,点击右键,选择如下添加新建项如下创建成功之后需要设置SDL检查为否,否则编译器会报错当你使用不安全的函数例如sc..原创 2021-07-10 14:53:43 · 11160 阅读 · 3 评论 -
C++进阶学习----模板
来源:微信公众号「编程学习基地」文章目录模板泛型函数模板值参数化类型参数化函数模板定义函数模板的使用函数模板隐式推断模板函数重载模板泛型泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。函数模板值参数化数据的值可以通过函数参数传递,在函数定义时数据的值是未知的,只有等到函数调用时接收了实参..原创 2021-06-29 20:01:07 · 237 阅读 · 0 评论 -
C++四种类型转换总结
类型转换C语言类型转换在C语言里面类型转换比较简单,直接 (转换类型) 类型 强转就可以转换 int a = 10; //将int类型变量a强转成double类型变量 double b = (double)a;//在这里并没有改变 a 的类型,只是编译器重新解释 a 的类型C++类型转换C++类型转换要求更为严格,总共分为四种类型转换运算符关键字功能const_cast去常属性reinterpret_cast重解释类型转换static_cast静态类型原创 2021-06-29 19:58:58 · 969 阅读 · 2 评论 -
C/C++开发编码规范
来源:微信公众号「编程学习基地」文章目录函数、变量、类等命名注释编码规范文件编码函数、变量、类等命名--------------------------------函数、变量、类等命名--------------------------------新建文件夹和文件以小写字母开头, 多个单词采用驼峰命名法(xxYyyZzz).局部变量,函数名以小写字母开头, 多个单词采用驼峰命名法(xxYyyZzz).宏定义以下划线区分的多个全大写单词(XXX_YYY_ZZZ), 宏定义后的..原创 2021-05-12 11:03:40 · 666 阅读 · 4 评论 -
condition_variable条件变量的简单使用
condition_variable条件变量简单使用#include <iostream> // std::cout#include <string>#include <thread> // std::thread#include <chrono> // std::chrono::seconds#include <mutex> // std::原创 2021-05-10 13:56:44 · 650 阅读 · 0 评论 -
std::function绑定全局静态类成员函数
来源:微信公众号「编程学习基地」文章目录std::function 绑定函数绑定全局函数绑定静态函数绑定类的成员函数std::function和C语言函数指针对比std::function 绑定函数绑定全局函数#include <iostream>#include <functional>using namespace std;function<void(char*)> functionTest;void funTest(char* infoStr..原创 2021-04-26 12:07:56 · 1506 阅读 · 0 评论 -
C++寄存器优化
文章目录C++寄存器优化解决方案 volatileC++寄存器优化在去常属性里面还有个有趣的现象#include<iostream>using namespace std;int main(){ int const tmp = 100; //定义常量tmp tmp不能修改 int const* p = &tmp; //不能通过指针修改指向的值 int* const q = const_cast<int*>(p); //去常属性 可以通过指针修改指向的内容原创 2021-02-28 23:11:02 · 1357 阅读 · 0 评论 -
浅谈Windows的各种“字符串”
文章目录绪论:中文用几个字节保存一、ASCII和UNICODE二、char和wchar_t三、LPCSTR和LPCWSTR四、TCHAR,LPCTSTR五、更多类型,如OLECHAR,BSTR,CString,QString六、建议绪论:中文用几个字节保存不知道你们的大学老师有没有说过中文是用两个字节保存,直到我了解了字符编码,然后写下了这几行代码#include<string.h>#include<stdio.h>int main(){ wchar_t w = 'a'转载 2020-09-10 16:54:51 · 459 阅读 · 1 评论 -
C++使用正则匹配
C/C++可以用正则表达式吗?答案肯定是可以的,那么,今天一个简单的输入scanf带你走进正则的世界#include<stdio.h>int main(){ printf("input digate:"); char str[100]; scanf("%[0-9]", str); //输入123456abc printf("%s", str); //打印123456 cin.get(); cin.get();}在scanf时输入任何一串以数字开始的字符,那么str里面原创 2020-08-12 20:26:31 · 16276 阅读 · 0 评论 -
C++进阶学习---多肽
目录虚函数覆盖覆盖条件虚函数表多态单台和多态多态理解多肽的好处虚析构纯虚函数抽象类纯抽象类继承多肽示例程序虚函数普通成员函数前加关键字virtual,称为虚函数覆盖子类成员函数和基类的虚函数具有相同函数原型,该成员函数也就是虚函数,无论其是否带有virtual关键字,都对基类虚函数构成覆盖覆盖条件函数为成员函数(非静态)基类使用virtual原型严格相同虚函数程序示例:#include<iostream>#include<string>using原创 2020-05-31 18:17:38 · 1368 阅读 · 0 评论 -
C++进阶学习---继承
目录继承继承方式公有继承特点保护继承特点私有继承特点访问控制权限继承演示阻断继承构造析构顺序子类构造子类析构演示多继承多重继承内存布局棱形继承虚继承继承继承语法class 子类名:继承方式1 基类1,继承方式2 基类2…{ …};继承方式公有继承:public保护继承:protected私有继承:private继承方式基类public成员基类protected成员基类private成员publicpublicprotectedprivate原创 2020-05-31 18:15:06 · 337 阅读 · 0 评论 -
C++进阶学习---IO流
目录IO流使用cout进行输出cout格式化调整字节宽度以及填充字符setf()相关字符串流文件流打包解包IO流C++兼容C,所以C中的输入输出函数依然可以在C++中使用,但是直接把C的那套输入输出搬到C++中肯定无法满足C++的需求。使用cout进行输出cout格式化格式设置完成之后将以对应格式打印,直到格式状态设置为其他的选项为止cout<<showbase; //设置显示进制前缀cout << dec << "dec:" <<原创 2020-05-31 18:11:33 · 352 阅读 · 0 评论 -
C++实现String类
目录实现一个String类String类原型:需要实现的功能:String类示例:测试代码:测试结果:实现一个String类String类原型:class String{private: char * str; // pointer to string int len; // length of string static int num_strings; // String类对象数量 static const原创 2020-05-31 18:10:21 · 323 阅读 · 0 评论 -
C++进阶学习---运算符重载
目录运算符重载友元友元函数关键字friend友元类友元类以及友元函数示例程序运算符重载关键字operator可重载运算符不可重载的运算符运算符重载注意事项+,- 运算符重载=赋值运算符重载注意事项前++,后++运算符重载流操作符>>,<<重载运算符重载示例程序1new,delete重载运算符重载示例程序2运算符重载友元友元函数友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元原创 2020-05-31 18:08:43 · 346 阅读 · 0 评论 -
单例模式
单例模式一个类只有一个实例将所有构造函数私有化,防止外部创建对象给出共有静态成员函数为获取对象实例的唯一渠道应用场景:缓存,日志,工具类,配置,线程池等分类:饿汉式:程序启动就创建对象,不管用不用懒汉式:需要用的时候创建,不用了销毁饿汉式程序启动就创建对象实例,不管有没有使用该对象#include<iostream>using namespace st...原创 2020-03-22 19:14:03 · 201 阅读 · 0 评论 -
C++进阶学习----静态成员
文章目录static成员变量static成员函数银行账户管理(含利率)static成员变量静态成员为所有类的对象所共有内存是程序运行时分配使用前必须初始化且只能初始化一次初始化不能在类定义中,通过作用域限定符初始化类型 类名::变量名=值;类似全局变量,和全局变量相比作用域在类中,可以避免与其他类成员或者全局对象的名字冲突可以封装,static成员可以是私有的,而全局对...原创 2020-03-22 19:12:30 · 557 阅读 · 1 评论 -
C++进阶学习----拷贝构造
拷贝构造特殊构造函数类型转换构造拷贝构造类型转换构造和拷贝构造示例explicit深拷贝和浅拷贝浅拷贝----复制地址深拷贝----复制内存何时需要自定义拷贝构造函数深浅拷贝示例程序特殊构造函数类型转换构造用从不同类型的对象来构造对象Complex(double real); //用实数来构造复数类拷贝构造用相同类型的对象来构造对象Complex(Complex const&...原创 2020-03-22 19:11:06 · 262 阅读 · 0 评论 -
C++进阶学习----const常成员
文章目录const关键字在C语言中的应用const的普通用法初始化和赋值const修饰指针常量指针指针常量const用于函数的形参const关键字在C++中的应用const修饰成员变量const修饰成员函数const修饰的是什么?const修饰成员函数构成重载?const成员函数的调用问题const修饰对象关键字 mutableconst关键字在C语言中的应用常类型是指使用类型修饰符cons...原创 2020-03-22 12:22:14 · 375 阅读 · 0 评论 -
C++进阶学习----this指针
this指针this 是 C++ 中的一个关键字,也是一个 const 指针,不可以更改指向。指向当前对象,通过它可以访问当前对象的所有成员。成员函数最终会被编译成与对象无关的普通函数。除了成员变量,丢失所有信息相同类型的不同对象共享同一份成员函数代码。因此,编译时在成员函数中添加一个隐藏参数,将当前调用对象首地址传入,用来关联成员函数和成员变量,这就是this指针C++关键字,co...原创 2020-03-20 09:56:09 · 229 阅读 · 0 评论 -
C++进阶学习----构造析构
微信公众号【编程学习基地】目录构造函数构造函数的使用特点:构造函数的重载析构函数析构函数的使用特点关于delete[]构造析构顺序初始化列表构造函数为成员变量赋初值,分配资源,设置对象的初始状态可以理解为类的初始化函数构造函数的使用#include<iostream>using namespace std;class STU{ char* m_name; in...原创 2020-03-20 09:54:53 · 353 阅读 · 0 评论 -
C++进阶学习----面向对象
文章目录new和delete申请释放内存分配多个内存动态分配内存类和对象访问类型限定符类和结构体区别封装定义一个类string类头文件使用字符串对象 string类创建对象new和delete在学习C++的过程中,有一套区别于C的内存分配,这个就是new和delete这两个关键字申请释放内存#include<iostream>using namespace std;int ...原创 2020-03-20 09:52:37 · 239 阅读 · 0 评论 -
C++进阶学习(二)----C到C++II
C到C++II结构,联合,枚举C++结构体C++联合C++枚举bool类型内联重载缺省参数和哑元哑元引用引用特点引用做参数引用做函数返回值结构,联合,枚举C++结构体声明或定义结构体变量时可以省略struct,内部可以定义函数#include<iostream>struct STU{ int m_age; char m_name[20]; void introduc...原创 2020-03-20 09:27:27 · 453 阅读 · 0 评论 -
C++进阶学习(一)----C到C++
C到C++头文件C风格C++风格输入输出输入输出说明命名空间作用创建使用::作用域限定符名字空间声明名字空间指令命名空间合并声明和定义分开命名空间嵌套命名空间别名头文件C风格#include<stdio.h>#include<math.h>C++风格#include<iostream>#include<cstdio> //C++风格 ...原创 2020-01-30 01:35:15 · 338 阅读 · 0 评论 -
VC++6.0的安装及使用
编程入门C语言篇准备工作VC++6.0安装包点击安装安装完成了,可以打开软件VC++6.0的使用代码编译输出运行结果现在你成功踏入了编程的大门,精彩的世界在等着你!准备工作VC++6.0安装包点击安装安装完成了,可以打开软件VC++6.0的使用去掉勾选框,点击关闭点击 Win32 console Application填写项目名字(任意,可为汉字)点击OK...原创 2019-09-03 21:33:16 · 3039 阅读 · 0 评论