c++
文章平均质量分 69
shilod
打造属于自己的标签——王振
展开
-
引用妙用
学习引用的概念时,总觉得缺少应用场合来帮助理解引用这个概念,同样也不知道引用是做什么的,今天学习的时候发现一个引用的妙用。和大家分享一下。 先上代码string a("hello world!!");for (auto &c: a) { if (c == 's' && c == 'w') { c = toupper(c);原创 2017-02-26 15:27:24 · 495 阅读 · 0 评论 -
STL 容器应用场景
STL中常见容器,主要包括如下几种: vector, list, deque,set,multiset, map, multimap。选用合适的容器,对编写高效的程序,简洁的代码有重要意义; 最近就项目中就涉及到一个容器选择的问题,设计一个数据结构时,开始使用了一个错误的容器,容器设计非常复杂,使用起来也特别不方便,代码冗余而且昂长。后来重新设计数据结构,使用其他的容器,将将近150行的代码,缩原创 2017-10-23 21:59:33 · 1967 阅读 · 0 评论 -
堆 和 栈详解:存储位置,作用机理,区别
转自此处问题描述编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)?在通常情况下由操作系统(OS)和语言的运行时(runtime)控制吗?它们的作用范围是什么?它们的大小由什么决定?哪个更快?答案一转载 2017-10-23 09:12:27 · 3817 阅读 · 1 评论 -
c++ 零碎知识点集锦 二
1dynamic_cast将基类指针或者引用安全的转化到派生类的指针和引用2const_cast将常量指针或者引用转化为非常量的指针和引用3mutable的用法关键字一旦被改关键字修饰则可以改变任何变量的值包括const4dllimport 和 dllexport的含义及其用法5 __declspec的用法和含义6 动态链接库7 静态链接库8 外部链接 和 内部链接的区别9 实例化派原创 2017-09-09 11:08:06 · 231 阅读 · 0 评论 -
多种方法实现多态!!!
本博客解决 如下几个问题!!!第一:什么是多态? 第二:传统方法怎么实现多态? 第三:是否有新的方法实现多态?什么是多态? 多态:多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征(引自百度百科)。 通俗解释:就是同一种实体,按道理来说,仅仅能表明一种状态。但是通过技术手段,让其可以表示多种状态,这就是多态!!!举个栗子 【例子】 编程角度解释:一个接口,多种原创 2017-07-29 21:55:51 · 3124 阅读 · 0 评论 -
c++ 四种类型转化方式
声明:转载出处:转自此处C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a,但是c 风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非 const对象的指针,把一个指向基类对象的指针转换成指向一个派生类对象的指针,这两种转换之间的差别是巨大的,但是传转载 2017-09-11 10:13:04 · 927 阅读 · 0 评论 -
C++ 零碎知识点集锦 一
1,纯虚函数的定义:函数后面有=0,纯虚函数无需定义。void Func() = 0;2,虚函数: 作用:定义为虚函数,子类可以重写基类的虚函数。使该函数在基类和子类中存在多种定义(也就是多态)。2.1,如何通过虚函数实现多态? 虚函数和普通函数主要不同之处是:虚函数是运行时才被解析,确定调用该虚函数的是基类还是子类。然而普通函数则是在编译期就解析确定。//三个子类,一个父类SonA,SonB,原创 2017-09-09 11:06:28 · 312 阅读 · 0 评论 -
C++中 atexit函数 exit函数
一、exit()函数 函数声明:void exit(int state); exit()函数用于在程序运行的过程中随时结束程序,exit的参数state是返回给操作系统,返回0表示程序正常结束,非0表示程序非正常结束。main函数结束时也会隐式地调用exit函数。****exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流转载 2017-08-20 08:23:55 · 514 阅读 · 0 评论 -
vs2015单元测试总结——3种方法可用
VS中有个非常有用的功能,单元测试。通过单元测试,开发人员和测试人员可以快速的检查C#,.net和c++项目中各个类的方法中是否有逻辑错误。单元测试仅仅需要创建一次,那么在每次更改源代码时候运行,以确保不引入bug。 对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里或C++里单元指一个类,图形化的软件中可以指一个窗口或一个菜单原创 2017-06-24 11:58:27 · 20069 阅读 · 3 评论 -
函数模板限定数据类型 和 类模板限定数据类型 的方法
函数模板非常有用,特别实在对不同类型的数据进行统一处理的时候,比如说比较两个数的大小,template<typename T>bool compara(T& a,T& b){ return a<b;}但是有时候有特殊需求,比如说之前我做的一个项目,需要能够处理以glm中vec2,和vec3为数据类型的数据,进行同样的操作,但是又不能让其他类型的数据能够访问到该函数模板。此时就需要一种限原创 2017-06-23 10:14:19 · 8037 阅读 · 1 评论 -
VS 错误集锦
1:.dll 或者 .lib文件导入错误,运行时弹出框找不到dll文件,或者找不到.lib文件。请先确认dll和lib文件路径是否配置正确。如果正确还是提示这个错误,那么请重新打开该项目。原创 2017-06-19 10:03:05 · 190 阅读 · 0 评论 -
STL unique()函数学习
在STL中,unique()函数是一个去重函数,STL中unique的函数 unique的功能是去除相邻(说明是对已经排序的容器进行去重)的重复元素(只保留一个),还有一个容易忽视的特性是它并不真正把重复的元素删除。他是c++中的函数,所以头文件要加#include<iostream.h>具体用法:int num[100];unique(num,mun+n)返回的是num去重后的尾地址,之所以说比不转载 2017-06-21 18:18:41 · 331 阅读 · 0 评论 -
阴影映射总结
阴影映射技术,也就是在场景中产生物体阴影的技术。增加场景的真实感,和空间感。主要思路: 首先,我们以光的位置作为视角进行场景的渲染,由于在程序中设置了深度缓冲,所以被遮挡的物体,或者物体的一部分不会被看到,也就是说看不到的地方,就是场景中物体的阴影。我们可以使用深度缓冲技术,获得每个fragment的深度值(一般为0到1之间),阴影部分的深度值肯定比对应位置的遮挡物的深度值大。获得的同时,把深度值原创 2017-05-10 10:07:49 · 573 阅读 · 0 评论 -
C++,关于指针形参”值传递VS地址传递“的问题
先上两个代码片段,也请大家考虑下两个片段运行的结果 第一个代码片段#include <iostream>void test(int* p1){ int b = 6; *p1 = b; std::cout << p1 << "**test**" << *p1 << std::endl;}int main() { int *p = NULL; int a原创 2017-04-26 21:55:03 · 534 阅读 · 0 评论 -
Effective c++ (1)
effective c++原创 2017-11-28 08:07:45 · 303 阅读 · 0 评论