【C++】C++ 强制转换运算符
C++ 运算符
强制转换运算符是一种特殊的运算符,它把一种数据类型转换为另一种数据类型。强制转换运算符是一元运算符,它的优先级与其他一元运算符相同。
大多数的 C++ 编译器都支持大部分通用的强制转换运算符:
(type) expression
其中,type 是转换后的数据类型。下面列出了 C++ 支持的其他几种强制转换运算符:
**const_cast (expr):**
const_cast
运算符用于修改类型的const / volatile
属性。除了 const 或 volatile 属性之外,目标类型必须与源类型相同。这种类型的转换主要是用来操作所传对象的 const 属性,可以加上 const 属性,也可以去掉 const 属性。**dynamic_cast (expr):** dynamic_cast
在运行时执行转换,验证转换的有效性。如果转换未执行,则转换失败,表达式 expr 被判定为 null。dynamic_cast 执行动态转换时,type 必须是类的指针、类的引用或者 void*,如果 type 是类指针类型,那么 expr 也必须是一个指针,如果 type 是一个引用,那个 expr 也必须是一个引用。reinterpret_cast (expr): reinterpret_cast 运算符把某种指针改为其他类型的指针。它可以把一个指针转换为一个整数,也可以把一个整数转换为一个指针。
static_cast (expr): static_cast 运算符执行非动态转换,没有运行时类检查来保证转换的安全性。例如,它可以用来把一个基类指针转换为派生类指针。
上述所有的强制转换运算符在使用类和对象时会用到。现在,请看下面的实例,理解 C++ 中如何使用一个简单的强制转换运算符。复制并黏贴下面的 C++ 程序到 test.cpp 文件中,编译并运行程序。
#include <iostream>
using namespace std;int main()
{double a = 21.09399;float b = 10.20;int c ;c = (int) a;cout << "Line 1 - Value of (int)a is :" << c << endl ;c = (int) b;cout << "Line 2 - Value of (int)b is :" << c << endl ;return 0;
}
当上面的代码被编译和执行时,它会产生下列结果
Line 1 - Value of (int)a is :21
Line 2 - Value of (int)b is :10
相关文章:

WPS 2019 更新版(8392)发布,搭配优麒麟 19.04 运行更奇妙!
WPS 2019 支持全新的外观界面、目录更新、方框打勾、智能填充、内置浏览器、窗口拆组、个人中心等功能。特别是全新的新建页面,让你可以整合最近打开的文档、本地模版、公文模版、在线模板等。 随着优麒麟即将发布的新版 19.04 的到来,金山办公软件也带来…

图像金字塔操作,上采样、下采样、缩放
#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include <iostream> // 图像金子塔采样操作 void Pyramid(cv::Mat srcImage) {// 根据图像源尺寸判断是否需要缩放if(srcImage.rows > 400 && srcImage…

【C++】【OpenCv】图片加噪声处理,计时,及键盘事件响应捕捉
图像噪声添加 cv::Mat addGuassianNoise(cv::Mat& src, double a, double b) {cv::Mat temp src.clone();cv::Mat dst(src.size(), src.type()); // Construct a matrix containing Gaussian noisecv::Mat noise(temp.size(), temp.type());cv::RNG rng(time(NULL));//…

透视学理论(十四)
2019独角兽企业重金招聘Python工程师标准>>> 已知左右距点分别位于透视画面两侧,因此我们可以左距点来得出透视画面的纵深长度。 距点,指的是与透视画面成45的水平线的消失点。我们把画面边缘按1米的宽度(A点)…

适用于Mac上的SQL Server
适用于Mac上的SQL Server? 众所周知,很多人都在电脑上安装了SQL Server软件,普通用户直接去官网下载安装即可,Mac用户则该如何在Mac电脑上安装SQL Server呢?想要一款适用于Mac上的SQL Server?点击进入&…

【MATLAB】————拷贝指定文件路径下的有序文件(选择后),可处理固定规律的文件图片数据或者文件
总体上来说这种数据有2中处理思路。第一种如下所示,从一组数据中挑选出符合要求的数据; 第二中就是数据中不需要的数据删除,选择处理不需要的数据,留下的补集就是需要的数库。一般情况下需要看问题是否明确,需求明确的…

mouseover与mouseenter,mouseout与mouseleave的区别
mouseover与mouseenter 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。 mouseout与mouseleave不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。只…

图像掩码操作的两种实现
#include <opencv2/imgproc/imgproc.hpp> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> #include <stdio.h> using namespace cv; using namespace std; // 基于像素邻域掩码操作…

控制反转 IOC
2019独角兽企业重金招聘Python工程师标准>>> 控制反转(Inversion of Control,缩写为IoC)面向对象设计原则,降低代码耦合度 依赖注入(Dependency Injection,简称DI) 依赖查找…

【C++】explicit关键字
explicit的优点是可以避免不合时宜的类型变换,缺点无。所以google约定所有单参数的构造函数都必须是显式的** explicit关键字只需用于类内的单参数构造函数前面。由于无参数的构造函数和多参数的构造函数总是显式调用,这种情况在构造函数前加explicit无…

mongodb3 分片集群平滑迁移
分片集群平滑迁移实验(成功)过程概述:为每个分片添加多个从节点,然后自动同步。同步完后,切换主节点到新服务器节点。导出原来的config 数据库,并导入到新服务器的config数据库停掉整个集群,可以使用kill 命令停掉新服…

图像添加椒盐噪声
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <cstdlib> // 图像添加椒盐噪声 cv::Mat addSaltNoise(const cv::Mat srcImage, int n) {cv::Mat resultIamge srcImage.clone() ;for(int k0; k<n; k){// 随机取值行…
我用python10年后,我发现学python必看这三本书!
非常喜欢python 我非常喜欢python,在前面5年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习! 它几乎可以做任何事,从简单的脚本创建、web,到数据可视化以及AI人…

【OpenCV】内核的形状函数使用记录
opencv getStructuringElement函数 为形态操作返回指定大小和形状的结构化元素。 该函数构造并返回结构化元素,这些元素可以进一步传递给侵蚀、扩张或morphologyEx。但是您也可以自己构造一个任意的二进制掩码,并将它用作结构化元素。 getStructuringE…

boxFilter 滤波器实现
cv::Ptr<cv::FilterEngine> cv::createBoxFilter( int srcType, int dstType, Size ksize,Point anchor, bool normalize, int borderType ) {// 基础参数设置 图像深度int sdepth CV_MAT_DEPTH(srcType);int cn CV_MAT_CN(srcType), sumType CV_64F;if( sdepth < …

git代理设置
2019独角兽企业重金招聘Python工程师标准>>> git config --global http.proxy http://127.0.0.1:1080 git config --global https.proxy https://127.0.0.1:1080 git config --global http.sslVerify false删除 git config --global --unset http.proxy git config …

获得PMP证书的这一年
很荣幸,通过2018年12月的PMP考试,这不仅是一张证书的收获,更体现了我的成长,明确了以后的道路。在考证的过程中,我收获了很多,不仅是工作技能方面,还包括思想的升华。 首先,重拾了…

【OpenCV】图片操作小结:RAW图转image以及image连续保存
opencv将RAW图转image uint32_t ReadRawImage(cv::Mat& image,const std::string& path,int width,int height,int cv_image_type) {cv::Mat input_image(height, width, cv_image_type);std::ifstream in(path, std::ios::in | std::ios::binary);if (!in) {std::cou…

Windows server2008服务器设置多用户登录
添加用户 右击我的电脑-->管理-->本地用户和组-->新用户 启用远程服务并添加远程用户 启用 右键我的电脑--->属性--->远程设置--->勾上允许远程连接到此电脑 添加用户 点击选择用户--->添加--->高级--->立即查找 防火墙允许远程连接设置 控制面板(c…

Linux6版本系统搭建Open***远程访问
前言:open***是一个***工具,用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件,提供证书验证功能,也支持用户名密码认证登录方式,当然也支持两者合一,为服务器登录和连接提供更加安全的方式,可以在不同网络访问场所之间搭建类似于局域网的专用网…

【Smart_Point】unique_ptr与shared_ptr使用实例
shared_ptr使用实例 文章目录shared_ptr使用实例unique_ptr使用实例cv::fitLine中斜率为正无穷的情况,需要特殊考虑std::string path "D:\\code\\test_base_opencv\\example\\depth_98.raw";std::string save_path "D:\\code\\test_base_opencv\\e…

关于kNN、kMeans、Apriori算法小结
趁着准备即将到来的笔试,也为了回顾一下这一星期来所学的三个机器学习算法,觉得还是重新理一下思路,好理解一下这几个算法。 复制代码 kNN算法 即k-近邻算法,属监督学习。 概述 优点:精度高,对异常值不敏感…

[PHP] Phalcon操作示范
这篇内容将对下列操作进行示范: Insert、Select、Update、Calculation、Transaction、models advanced、dev-tools、cookies [ Insert ] (1) // 模型内操作,data是[字段>值]的一维数组。$bool $this->save($data);return $…

【C++】lambda 表达式
1.lambda 表达式 1.1 lambda 特点 lambda表示一个可调用单元,可视为内联函数 范式 : 具有一个返回类型,一个参数列表,一个函数体 [captrue list](parameters list)->return type {function body} captrue list 捕获列表是一个lambda所…

8位图像的双边滤波器实现
static void bilateralFilter_8u( const Mat& src, Mat& dst, int d,double sigma_color, double sigma_space,int borderType ) {// 获取原始图像信息int cn src.channels();int i, j, maxk, radius;Size size src.size();CV_Assert( (src.type() CV_8UC1 || src.t…

读取Cert格式证书的密钥
不想存储Cert证书内容,只想存储证书密钥,可通过以下2種方式实现 一、通過java读取证书的密钥出来: 1 package com.zat.ucop.service.util;2 3 import sun.misc.BASE64Encoder;4 5 import java.io.FileInputStream;6 import java.security.Pu…

图像导向滤波操作
#include <iostream> #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" using namespace std; using namespace cv; // 导向滤波器 cv::Mat guid…

【C++】bind参数绑定 P354(通用的函数适配器)
1. 什么时候该使用bing ?什么时候该使用lambda? 当只有少数地方调用时候使用lambda,当需要多次调用lambda时,需要定义一个函数,而不是多次编译相同的lambda表达式。 调用bind的一般形式为: auto newCallable bind(cal…

[译] RabbitMQ tutorials (3) ---- 'Pub/Sub' (Javascript)
发布与订阅 (Publish/Subscribe) 在之前的章节中,我们创建了工作队列,之前的工作队列的假设是每个任务只被分发到一个worker。在这一节中,我们会做一些完全不一样的事--把一条消息发送给多个消费者,这个模式…

如何选取合适的前端动效方案?
一、原因 前端动画场景需求多对众多动画场景的技术实现方案选择上比较模糊 各动画方案的优劣及适用场景认识模糊现有动画库太多,不知道选哪个 主流动画库的适用场景认识模糊二、分类 动画用途 展示型的动画,类似于一张GIF图,或者一段视频交互…