![](https://img-blog.csdnimg.cn/3a923cbe84654ffcb6c0561c91b20815.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
软件开发
文章平均质量分 61
编程语言
xppbin
每天进步百分之一,就是成功!
展开
-
c++基础总结(1)基本语法
1、C++的数据类型:[1].7种基本类型(bool,char,int,float,double,void,wchar_t)[2].可以用typeof关键字为已有的类型取一个新的名字:typedef int feet;//feet是int的另一个名称。[3].枚举类型//语法:enum枚举名{标识符[=整型常数],标识符[=整型常数],...标识符[=整型常数]}枚举变量;//举例enumcolor {red,green,b...原创 2020-11-26 15:22:47 · 856 阅读 · 0 评论 -
c++基础总结(2):类&对象
1、类的定义:class Box { public: double length; // 盒子的长度 double breadth; // 盒子的宽度 double height; // 盒子的高度};//定义类Box Box1;//实例化对象2、访问成员:类的对象的公共数据成员可以使用直接成员访问运算符 (.) 来访问3、类成员函数:class Box { public: double length; // 长度原创 2020-11-30 14:58:29 · 98 阅读 · 0 评论 -
c++基础总结(3)友元函数&运算符重载
1、C++友元①友元函数:[1]概念及语法:指某些虽然不是类的成员却能够访问类的所有成员的函数;为什么要使用:为了使其他类的成员函数来访问该类的私有变量什么时候使用:可以用于运算符重载、两个类共享数据调用方式:不是类的成员函数,调用时不通过对象存在位置:可以在类内声明,类外定义,可放在类的私有段或公有段,放在私有段和公有段无区别。举例:友元函数定义需要用到关键字friend,#include <iostream>using namespace std;.原创 2020-12-01 18:15:01 · 362 阅读 · 0 评论 -
c++基础总结(4)继承&多态
1、继承[1].语法:class Shape{//父类}class Rectangle: public Shape{//子类}[2].多继承;基类之间用逗号隔开。class Rectangle: public Shape, public PaintCost{ 代码块};2、多态原创 2020-12-02 08:53:22 · 133 阅读 · 1 评论 -
c++基础总结(5)数据抽象&封装&接口(抽象类)
数据抽象数据抽象是一种依赖于接口和实现分离的编程(设计)技术数据抽象有两个重要的优势:1.类的内部受到保护,不会因无意的用户级错误导致对象状态受损。2.类实现可能随着时间的推移而发生变化,以便应对不断变化的需求,或者应对那些要求不改变用户级代码的错误报告。#include <iostream> using namespace std; class Adder{ public: Adder(int i = 0) {// 构造函数原创 2020-12-04 11:12:16 · 151 阅读 · 0 评论 -
C++异常处理机制
抛出异常 :使用throw语句在代码块中的任何地方抛出异常double division(int a, int b){ if( b == 0 ) { throw "Division by zero condition!"; } return (a/b);}捕获异常:catch 块跟在 try 块后面,用于捕获异常try{ // 保护代码}catch( ExceptionName e ){ // 处理 ExceptionName 异常...原创 2020-12-08 10:02:25 · 79 阅读 · 0 评论 -
C++信号处理&多线程
信号是一种软件中断,一种向进程传递有关其他进程、操作系统和硬件状态的信息的方法。信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。先介绍几种之前遇到过的操作:[1].在shell中工作希望“杀死所有cat程序”时,使用下列命令:#> killall cat killall命令将向所有名为cat的进程发送一个信号,表示“终止”。发送的实际信号是SIGTERM,其目的是将终止请求传送给给定进程。[2].在终端中使用crtl+C 产生中断。这些信号,有些可以在程序中...原创 2020-12-24 17:58:21 · 789 阅读 · 1 评论 -
C/C++预处理器
C/C++编译系统编译程序的过程为预处理、编译、链接。预处理器是在程序源文件被编译之前根据预处理指令对程序源文件进行处理的程序。预处理器指令以#号开头标识,末尾不包含分号。预处理命令不是C/C++语言本身的组成部分,不能直接对它们进行编译和链接。C/C++语言的一个重要功能是可以使用预处理指令和具有预处理的功能。C/C++提供的预处理功能主要有文件包含、宏替换、条件编译等。1、文件包含预处理指令#include用于包含头文件,有两种形式:#include <xxx.h>,#in.原创 2020-12-17 21:47:06 · 260 阅读 · 0 评论 -
C++泛型编程基本概念
写在前面:0. 所谓泛型编程就是独立于任何特定类型的方式编写代码,使用泛型程序时,需要提供具体陈旭实例所操作的类型或者值。我们经常用到STL容器、迭代器、和算法都是泛型编程的例子;模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型; 模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类; 使用模板的目的就原创 2020-12-15 10:05:46 · 159 阅读 · 1 评论 -
c++动态内存分配&命名空间的使用
1、动态内存跟java,php等语言相同。栈:在函数内部声明的所有变量都将占用栈内存。堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存[1].C++中使用new()来创建对象,分配内存。使用delete()删除之前由new()分配的内存。举例:#include <iostream>using namespace std;int main (){ double* pvalue = NULL; // 初始化为 null 的指针 pval...原创 2020-12-09 20:32:59 · 193 阅读 · 0 评论 -
c++操作文件(ifstream&ofstream&fstream)
1、fstream提供了三个类,用来实现c++对文件的操作。(文件的创建、读、写)。 ifstream -- 从已有的文件读入 ofstream -- 向文件写内容 fstream - 可同时读写操作的文件类①文件打开(Open a file)思路:要通过一个流对象打开一个文件,我们通过查阅c++api文档发现,使用它的成员函数open(): ios::nocreate 打开一个文件时,如果文件不存在,不创建文件 io...原创 2020-12-07 18:01:27 · 556 阅读 · 0 评论 -
c++框架(Qt)安装&项目创建&软件生成
1、qt简介:qt:一种GUI编程,图形界面,由c++实现的应用程序框架。模式: GUI+服务器(后端)编程。2、安装qt官网下载:http://download.qt.io/archive/qt/安装过程中需要申请一个Qt Creater账号, 选择需要安装的组件:选择:MinGW,是Minimalist GNUfor Windows的缩写。安装完成如下界面:3.qt Creater编辑工具中建项目创建一个 Qt Widgets Application选择编译组原创 2020-12-29 15:37:48 · 1404 阅读 · 1 评论 -
QMainWindow及其常用的组件
1.QMainWindowQMainWindow类用于创建主程序窗口,Qt 用QMainWindow和相关类来管理主窗口。QMainWindow已经定义了一个布局,可以往里添加一些 QToolBar 和 QDockWidget,也可以添加一个 QMenuBar 和一个 QStatusBar。这个布局有一个中央区域,可以放任意部件。如下图所示:2.创建一个QMainWindow工程在 Qt Creator 中,点击菜单”文件”依次选择“新建文件或项目->application->原创 2021-01-14 11:20:07 · 465 阅读 · 0 评论 -
Qt框架实现自定义窗口
需求:自定义个一个窗口。分析:[1].在main函数中添加一个自定义的窗口MainWidget对象,并让其显示#include "widget.h"#include "mainwidget.h"#include <QApplication> //应用程序类#include <QPushButton>#include <QDebug>//引入头文件和QApplication类,int main(int argc, char *argv[]){原创 2021-01-06 14:21:10 · 279 阅读 · 0 评论 -
Qt信号和槽机制&emit的使用
1.相关概念:[1].信号(Signal)就是在特定情况下被发射的事件[2].槽(Slot)就是对信号响应的函数。槽就是一个函数[3].信号与槽之间的关联:是用 QObject::connect() 函数实现的,其基本格式是:QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));//信号发出者,处理的信号, 信号接收者,处理动作方法(槽函数)。注解:[1].sender 是发射信号的对象的名称,[2]原创 2021-01-11 16:07:32 · 24415 阅读 · 0 评论 -
Qt框架中的qDebug()函数调试
使用qDebug()函数,它可以把调试信息直接输出到控制台上。1.首先qDebug有两个重载的函数void qDebug(const char *, ...);QDebug qDebug(); //需要包含QDebug这个头文件才能使用所以,输出到控制台上有两种方式: (1) 将字符串当做参数传给qDebug()函数。(可以不用添加头文件#include<QDebug>) (2) 使用流输出的方法输出多个字符串。(需要添加 #include<QDebug>..原创 2021-01-04 21:01:16 · 1227 阅读 · 0 评论 -
Qt项目管理文件& main主函数
刚才创建项目时发现自动添加了几个文件,我们来研究一下这几个文件:下面介绍一下刚才添加的这几个文件1、项目文件(pro文件).pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件。下面这是一份简单的项目文件:[1].注释:“#”。[2].模板变量 TEMPLATE:模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择,共五个,比如:TEMPLATE = app ·app - 建立一个应用程序的makefi原创 2020-12-29 19:55:26 · 687 阅读 · 0 评论 -
Qt坐标系统
Qt 也提供了几种组件定位的技术。其中就包括绝对定位和相对定位,好理解,如图主窗口的定位:以屏幕的左上角为原点即(0, 0)点,从左向右为x轴正向,从上向下为y轴正向,这整个屏幕的坐标系统就用来定位顶层窗口客户区(子窗口)定位:窗口内部也有自己的坐标系统,它依然以左上角作为原点,从左向右为x轴正向,从上向下为y轴正向,原点、x轴、y轴围成的区域叫做Client Area(客户区),在客户区的周围则是标题栏(Windows Title)和边框(Frame)。如此嵌套!坐标系统这块技原创 2021-01-12 15:40:42 · 233 阅读 · 0 评论 -
Lambda表达式&disconnect 函数断开信号连接
1.disconnect 函数来断开连接有三种情况必须使用 disconnect() 函数:[1].断开与某个对象相关联的任何对象。这似乎有点不可理解,事实上,当我们在某个对象中定义了一个或者多个信号,这些信号与另外若干个对象中的槽相关联,如果我们要切断这些关联的话,就可以利用这个方法,非常之简洁。disconnect( myObject, 0, 0, 0 )或者myObject->disconnect()[2].断开与某个特定信号的任何关联。disconnect( my.原创 2021-01-12 12:01:29 · 2274 阅读 · 2 评论 -
Windows下GUI库&Qt组件的父级指定
GUI 程序设计的主要内容就是对界面上各组件的信号的响应。1、Windows 下的 GUI 库Windows 下的 GUI 解决方案比较多:基于 C++ 的有 Qt、MFC、WTL、wxWidgets、DirectUI、Htmlayout;基于 C# 的有 WinForm、WPF;基于 Java 的有 AWT、Swing;基于 Pascal 的 有Delphi;基于Go语言的有 walk 和 electron;还有国内初露头角的 aardio;Visual Basi...原创 2021-01-05 08:31:06 · 580 阅读 · 0 评论 -
PHP面向对象(一):类与类的实例化
1)、类、对象、实例的关系类是对象的抽象,对象是类的具体化,实例是对象的另一种名称。2)、类的定义①、成员属性(变量)的定义与使用成员属性必须 var public protected private语法:形式1:var $v1 ; //定义不赋值形式2: var $v2 = 2; //定义的同时可以赋值,该值只能是“直接值”,常量(值),不能是变量值,也不...原创 2018-11-12 18:06:16 · 4925 阅读 · 0 评论 -
PHP面向对象(二):抽象与接口
一、抽象类: abstract1:抽象类中不一定包含抽象方法,包含抽象方法的类一定是抽象类。抽象类中既可以有抽象方法,也可以有普通方法。2:定义为抽象的类不能被实例化。3:继承一个抽象类的时候,子类必须定义父类中的所有抽象方法。这些方法的访问控制必须和父类中一样(或者更为宽松)4:只有通过子类继承抽象类并覆盖了抽象类中的所有抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类...原创 2018-11-13 10:09:04 · 151 阅读 · 0 评论 -
PHP面向对象(三):继承与多态
1、继承 继承性:B类的对象拥有A类的全部属性与行为,称作B对A类的继承。 好处: 1:提高了代码的复用性。 2:让类与类之间产生了关系,提供了另一个特征多态的前提 弊端: 打破了封装性。对于一些类,或者类中功能,是需要被继承,或者复写的。这时如何解决问题呢?介绍一个关键字,final:最终。1)、final关键字 ...原创 2018-11-13 13:37:43 · 184 阅读 · 0 评论 -
PHP面向对象(四):Trait 与匿名类
1、PHP Trait新特性1:Traits 是一种为类似PHP的单继承语言而准备的代码复用机制。2:Trait 和一个类相似。Trait 不能通过它自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用类的成员不需要继承。<?phptrait A{ public $abc="abc"; public function a(){ echo 'hello ';...原创 2018-11-14 17:27:49 · 213 阅读 · 0 评论 -
PHP学习—命名空间
PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。例:项目中有两个模块:article和message board,它们各自有一个处理用户留言的类Comment。之后我可能想要增加对所有用户留言的一些信息统计功能,比如说我想得到所有留言的数量。这时候调用它们Comment提供的方法是很好的做法,但是同时引...原创 2018-11-11 21:02:33 · 127 阅读 · 0 评论 -
PHP学习—自动加载
自动加载:意思就是 我们的new 一个类的时候必须先include或者require的类文件,如果没有include或者require,则会报错。那这样我们就必须在文件头部写上许多include或require文件,非常麻烦,用一个算法让其自动实现include或者require文件,这就是自动加载。1、spl_autoload_register用spl_autoload_register...原创 2018-11-14 16:11:20 · 120 阅读 · 0 评论 -
PHP魔术方法总结
1、调用属性1)、__get()、__set()1:在php面向对象的编程中,总是把类的属性定义为private。但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来获取和赋值其属性。2:类似于java中的javabean的操作,使用的方法也类似,只是不需要像javabean中那样,对每个字段进行set和get的操作。只需...原创 2018-11-13 20:59:46 · 1219 阅读 · 0 评论 -
php的输出缓冲区
一、什么是缓冲区?简单而言,缓冲区的作用就是,把输入或者输出的内容先放进内存,而不显示或者读取。至于为什么要有缓冲区,这是一个很广泛的问题,但有三点一定要知道1、任何会输出点什么东西的函数都会用到输出缓冲区当然这说的是用PHP写的程序。如果你是编写PHP扩展,你使用的函数(C函数)可能会直接将输出写到SAPI缓冲区层,而不需要经过OB层。你可以在源文件main/php_output.h...转载 2019-03-26 19:52:03 · 180 阅读 · 0 评论 -
php 7新特性(一):类型的限定
1、标量类型声明:a.默认:以前的弱类型b.严格:declare(strict_types=1) //strict_types的值(1或者0),1表示严格类型, 0表示弱类型可以使用的类型参数有:int float bool string interface array callable2、严格了返回值类型:如果把 return语句改为:return $valu...原创 2018-11-10 11:20:39 · 3325 阅读 · 0 评论 -
php7新特性(二):面向对象部分
1)、PHP 7 支持new class 来实例化一个匿名类这可以用来替代一些"用后即焚"的完整类定义。2)、Closure::call():将一个闭包函数动态绑定到一个新的对象实例并调用执行该函数3)、use:可以使用一个 use 从同一个 namespace 中导入类、函数和常量:4)、面向对象中移除的特性:①成员函数名不能与它的类名相同②以静态的方式调用非静态...原创 2018-11-11 10:50:27 · 687 阅读 · 0 评论 -
PHP7新特性(三):性能优化
1)、为 unserialize() 提供过滤的特性:可以防止非法数据进行代码注入,提供了更安全的反序列化数据。【注】所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示。unserialize()函数能够重新把字符串变回php原来的值=>序列化;因为mysql没法存数组类型的数据,序列化之后就转变成了字符全就可以存进去了。unserializ...原创 2018-11-11 11:20:01 · 1388 阅读 · 0 评论 -
CodeIgniter使用总结
一、ci安装与配置1、下载下载地址:http://codeigniter.org.cn/user_guide/installation/downloads.html1:解压压缩包,然后将文件夹的内容全部上传到服务器上的web根目录,如/www/web/2:找到application/config/config.php,设置网站根目录:$config['base_url'] = ...原创 2018-12-17 23:52:36 · 240 阅读 · 0 评论 -
yii学习一:Object基类与component的特性
1、类的属性Yii中为Object基类规定义了属性:属性支持get、set特性。1.1getter特性和setter特性当继承yii\base\Object的类有一个public function getXxx()方法时,可以直接通过echo $obj->xxx来输出getXxx方法的返回值。总结:关键是方法要public,然后是get开头,get后面的单词就是访问的属性名,...原创 2019-02-21 12:14:47 · 376 阅读 · 0 评论 -
yii学习二:目录结构配置与组件介绍
1、目录结构说明assets: 资源目录,一般定义了项目里会使用的JS和CSS文件路径commands: CLI程序的控制器目录,新手建议删除,熟手你要进行PHP的CLI开发就保留config: 配置文件目录,基本都是返回数组controllers: 控制器目录mail: 邮件模板目录models: 模型目录,基本上就是ORM模型runtime: 运行时目录,留空即可...原创 2019-02-21 15:15:56 · 811 阅读 · 0 评论 -
Laravel学习一:框架的下载安装与目录结构
1、laravel框架安装1)、所需环境要求PHP版本要在 5.5.9版本以上PHP扩展: OpenSSL——>加密扩展包,封装了很多加密解密相关的PHP函数。PHP扩展: PDO ——> 为PHP访问数据库定义了一个轻量级的一致接口 PHP扩展: Mbstring ——>语言编码...原创 2018-11-19 21:47:52 · 1282 阅读 · 0 评论 -
Laravel学习二:数据库配置以及数据的迁移填充
1、laravel连接数据库laravel支持的数据库有四种:MySQL PostgreSQL SQLite SQL Server1)、连接MySQL1:连接数据库的配置文件在:config文件夹下的database.php文件中找到mysql部分配置:'mysql' => [ 'driver' => 'mysql', ...原创 2018-11-23 16:22:02 · 216 阅读 · 0 评论 -
Laravel学习三:路由以及跳转和重定向用法总结
1、路由的定义规则:laravel 中路由规则可以自己定义!然后去使用。路由文件的位置在routes/web.php1)、路由的定义格式:Route::请求方式(‘请求的URL’, 匿名函数或控制器响应的方法)例;Route::get(‘/’,function(){return ‘hello word’});函数的返回值,就是请求的响应。2)、路由中请求类型:Route::g...原创 2018-11-26 15:34:31 · 9513 阅读 · 0 评论 -
laravel学习四:控制器、视图、模型介绍
1、控制器总结1、控制器命名:大驼峰+Controller.php2、控制器文件创建使用命令行:php artisan make:controller TestController自动生成三行代码:创建命名空间;导入命名空间;创建类并继承Controller,Controller.php在Controller目录下3、接受用户输入数据:接受用户输入的类:illuminate...原创 2018-11-26 15:42:24 · 419 阅读 · 0 评论 -
Laravel学习五:操作数据库
Laravel提供了DB facade(原始查找) 、查询构造器和Eloquent ORM三种操作数据库方式1、运行原生sql一旦配置好数据库连接后,便可以使用 DB facade 运行查询。 DB facade 为每种类型的查询提供了方法: select,update,insert,delete 和 statement。①select查询$users = DB::select(...原创 2018-11-27 20:09:26 · 633 阅读 · 0 评论 -
Laravel学习六:csrf验证和验证码captcha的引入
1、什么是CSRF攻击可以理解为两个域名之间不能跨过域名来发送请求或者请求数据,否则就是不安全的,这种不安全也就是CSRF(Cross-site request forgery),中文名称:跨站请求伪造。laravel 框架中为避免CSRF攻击,为每个 用户session生成一个CSRF token,该token用于验证登录用户和发起请求用户是否为同一个人。laravel提供了一个全局...原创 2018-11-29 09:58:56 · 872 阅读 · 0 评论