C++进阶之函数模板
我们知道C++中有函数重载这个概念,函数重载的功能就是把一个函数重写多次使其可以具有多种类型的参数。简单的来说就是用同一种函数名定义多个函数,这些函数的参数个数和参数类型不同。 利用函数模版就可以更简单的来实现不同函数的参数需求。其实函数模版和函数重载是非常相似的 唯一的区别就是 函数重载需要写多个...
C++仿制静态构造函数
在《C++的头文件和实现文件分别写什么》文章中,我对于的C++的数据成员,逐个分析了可以作用在它们上边的限定符都有哪些,以及它们所对应的进行初始化的位置。可以看出这些修饰符其实就是const和static的两种的组合,但是却有不同的效用。本文,我想讲关于static的问题,《C++的头文件和实现文件...
【C++】关于随机函数与概率设置
一、random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。 可改用C++下的rand函数来实现。 1、C++标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布的伪随机整数。 RAND_MAX必须至少为32767。rand()函数不接受参数,默认以1为种子...
【Visual C++】CDC与HDC的区别以及相互转换
CDC是MFC的DC的一个类HDC是DC的句柄,API中的一个类似指针的数据类型.MFC类的前缀都是C开头的H开头的大多数是句柄这是为了助记,是编程读\写代码的好的习惯.CDC中所有MFC的DC的基类.常用的CClientDC dc(this);就是CDC的子类(或称派生类).CDC等设备上下分类,...
C++ Qt 08:文本编辑器——新建菜单功能实现
前面我们已经创建好了文件菜单,但是点击后没有什么功能,本节就让我们一起完成每个菜单的功能吧。既然叫文本编辑器,怎么连输入文本的地方都没有呢,好吧,我们需要在头文件中声明一个QTextEditprivate: QTextEdit *textEdit;在MainWindow的构造函数中1 textEdi...
常用数据结构算法 c++模板实现
由于大三下学期了,快要找工作了,所以最近在复习一些学过的内容,以下是这几天写的数据结构里面的一些常用的算法,仅供参考。不过在平时做项目的时候,建议采用STL和Boost里面现成的东西,而不要自己去实现他们。另外,由于国内外讲解数据结构和算法的书籍很多,内容大多重复,所以笔者并没有自习讲解数据结构的原...
C++编程思想,第十八章《RTTI运行时类型识别》
C++编程思想,第十八章《RTTI运行时类型识别》(加了一些少量自己的话,应该不会误导大家,另外翻译版本比较罗嗦,把做了适当精简)RTTI是我们只有一个指向基类的指针或者引用的时候,确定一个对象的准确类型。这是C++的第二大特征。编程时候遇到了特殊的问题,而我们只要知道了一个一般指针的准确类型它就会...
c++中const与函数一起用的时候需要注意什么?
1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即val...
排列-组合的代码实现
排列组合是算法常用的基本工具,如何在c语言中实现排列组合呢?思路如下: 首先看递归实现,由于递归将问题逐级分解,因此相对比较容易理解,但是需要消耗大量的栈空间,如果线程栈空间不够,那么就运行不下去了,而且函数调用开销也比较大。 (1) 全排列: 全排列表示把集合中元素的所有按照一定的顺序排列起来,使...
C++指针 完全攻略(1)
作为C++语言的亮点与精髓,指针一直是备受人们追捧和病诟的东西。不知道有多少精巧的代码是通过它实现的,也不知道有多少难缠的bug是由它引发的,这篇文章先对指针做一个全局的总结,从声明、赋值、调用和实现机制上对所有指针做一个说明,希望对大家有所帮助。在后续的文章中,我将给出那些使用指针的技巧。 首先是...
【Visual C++】Windows GDI贴图闪烁解决方法
一般的windows复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。...
hdoj_1027_code
杭电1027 IgnatiusAndhe Princess II是一个全排列,解题使用到数学知识 字典序,详细解释例子在我的 文件 里的《字典序》,可以直接用调用函数库里的next_permutation(),其头文件是<algorithm>代码如下:#include<iostre...
【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI
我们常常听闻AI(ArtificialIntelligence人工智能)这个名词,比如Dota里面的AI地图。写这篇文章的时候,最新版的DotaAI是6.72f,估计过几天6.73的AI也要出来了。很多Dota玩家喜欢玩AI地图练练感觉和补刀,可以这样说,Dota地图成功的加入了AI元素,是近几年D...
基于easyX的<颜色侵略>小游戏
是挺久以前做的一个东西,突然想到放上来分享一下俺的拙作,纯原创。利用二维数组对齐进行划分,并讲状态分为被侵略与未被侵略两种状态来记录。 在旧版的easyX可以运行。源码及exe下载头文件:1#include<graphics.h>2#include<iostream>3con...
C++ Qt 08:文本编辑器——状态栏
今天的内容主要还是继续完善前面的那个程序。我们要为我们的程序加上一个状态栏,Qt提供了一个QStatusBar类来实现状态栏。在Qt里面,状态栏显示的信息有三种类型:临时信息、一般信息和永久信息。其中,临时信息指临时显示的信息,比如QAction的提示等;永久信息是不会消失的信息,比如可以在状态栏提...
C++中运算符重载相关知识
操作符重载的方法是定义一个重载操作符的函数,在需要执行被重载操作符时,系统就自动调用该函数实现相应的操作。操作符重载实质上就是函数的重载。 操作符重载的规则: C++不允许用户自定义新的操作符,只能对已有的C++操作符进行重载。 C++中绝大部分操作符允许重载,除了以下几种: .(成员访问操作符) ...
VC++引用类型与指针类型
两种类型的参数都允许有效地向函数传递大型类对象 引用必须被初始化为指向一个对象,一旦初始化了它就不能再指向其他对象。指针可以指向一系列不同的对象,也可以什么都不指向。因为指针可能指向一个对象或没有任何对象,所以函数在确定指针实际指向一个有效的对象之前,不能安全地解引用dereference 一个指针...
C++ Qt 07:文本编辑器——工具栏图标和信号槽关联
一、工具栏图标使用图标,先要添加一个资源文件,在项目想右键-添加新文件我们取名叫ICONS,这时就多了个资源文件ICONS.qrc,它是一个普通的XML文件。首先点击添加前缀,将/new/prefix1改成/icons,然后在工程文件中添加一个图标,再选择添加文件,选择需要的图标(最好是png的)。...


