腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
4
回答
为什么
基
类
的
static_cast
(*this)
创建
一个
临时
副本
?
、
、
/ derived class virtual void onResize() { // derived onResize impl;
为什么
static_cast
(上面的代码)要
创建
一个新
副本</e
浏览 1
提问于2012-01-31
得票数 25
回答已采纳
3
回答
static_cast
将此对象派生为C++中的
基
类
。
、
、
、
当阅读第27项时,在有效C++中最小化转换,它说不要尝试使用
static_cast
将派生
类
中的*this强制转换为
基
类
。这是因为
static_cast
<Base>(*this) 将
创建
基
类
的
临时
对象。{std::cout << a << std::endl;} public: void foo () { <
浏览 4
提问于2016-04-28
得票数 1
1
回答
从派生引用到
基
引用时出现
static_cast
编译器错误
、
、
、
、
我的主要问题是现在使用
static_cast
将其强制转换为我的派生
类
中的
基
类
是没有问题的。但是,我不能执行从派生引用到
基
引用的静态转换。我只在派生
类
的相等运算符中执行此操作。它的
static_cast
没有问题,但无法解释从派生
类
到
基
类
的
static_cast
。如果我删除引用,这将编译得很好,但如两个引用的问题所示,这将不必要地
创建
一个
临时
对象。因
浏览 0
提问于2013-06-26
得票数 2
回答已采纳
2
回答
虚函数在继承中表现得很奇怪?
、
SmartPC:private PCpublic: { void convert() PC* temp=
static_cast
cout<<"The data is (in bb):"<<a<<std::endl;}; { PC* miniPC=
static_cast
<PC*>(&SmrtPC);
浏览 0
提问于2011-07-01
得票数 1
回答已采纳
2
回答
在派生对象中的"this“指针上使用
static_cast
到
基
类
的问题
、
、
这是一个来自有效的C++ 3ed的例子,它说,如果以这种方式使用
static_cast
,那么对象的基本部分将被复制,并且调用将从该部分调用。我想知道引擎盖下面发生了什么,有人能帮忙吗?/ derived class virtual void onResize() { // derived onResize impl;
static_cast
浏览 2
提问于2010-12-28
得票数 5
回答已采纳
1
回答
当先转换为引用类型时,
临时
仍然绑定
到
引用。
输出是(用gcc和clang尝试的):Next line 因此,正如您在这里所看到的,
临时
对象被绑定
到
引用我不知道
为什么
会这样。我试着亲自回答,这是我的想法: 否则,如果声明e格式良好,则可以使用表单
static_cast
<T>(e)的
stat
浏览 1
提问于2014-10-14
得票数 2
1
回答
如何获得变体值的引用?
、
、
我有一个std::variant,其中所有的
类
都是从同一个
基
派生的。我想把变体投给基地。return std::visit( []( const Base& b ) { return b; }, v );是否有一种方法可以访问std::variant,而不制作本地或
临时
副本
?或者,如果这是不可能的,我如何将值转换为void*,以便我可以使用
static_cast
?
浏览 0
提问于2018-12-20
得票数 3
回答已采纳
4
回答
为什么
static_cast
需要指针或引用?
、
、
、
我最近遇到过一种情况,我必须使用
static_cast
将父
类
转换为子类,因为我知道对象实例就是那个子类。我知道这是基于if条件的。如下所示:child* bar; bar =
static_cast
<child*>(foo)编辑:我忘了提到它可以和引用一起工作。因此,这个问题
浏览 0
提问于2014-04-04
得票数 1
3
回答
为什么
static_cast
从
基
到
派生的转换在
基
内而不是在外部工作
、
、
、
为什么
从
基
类
到
派生
类
的static_case转换在
基
类
内部工作,而不在
基
类
之外工作using std::cout; { int getValue() const { return
static_cast
<const T&>(*this).get
浏览 5
提问于2020-03-22
得票数 0
回答已采纳
2
回答
令人惊讶的c型演员
、
显然,(const TVector3<T> &) *this会导致调用TVector3(const TVector4<U>& ),但
为什么
呢?A&)" << std::endl; }{ (const B&) a;} 它打印B(const A&) (),但
为什么
浏览 1
提问于2021-11-08
得票数 4
回答已采纳
1
回答
为什么
‘`auto&’不能绑定
到
易失的rvalue表达式?
、
、
、
、
考虑以下代码:{ auto& c =
static_cast
<const int&&>(i); // (1)} 错误:对类型“易失性int”的易失性lvalue引用不能绑定
到
类型“易失性int”的
临时
值。
为什
浏览 0
提问于2015-10-11
得票数 4
2
回答
C2440
static_cast
不能从
基
类
转换为派生
类
、
、
、
我试图理解
为什么
使用指针从
基
类
到
派生
类
的转换很好,但是使用非指针对象进行转换会产生错误C2440。 { } double m_lon;在myFunction中,我试图将
基
类
转换为派生
类
voi
浏览 1
提问于2018-11-14
得票数 2
回答已采纳
4
回答
static_cast
和
临时
创建
(最终版本)
、
、
、
Prerequisities:要理解这个问题,请先阅读以下问题及其答案: 在,史蒂夫回答说,“您的
static_cast
将把auto_ptr复制
到
一个
临时
的,所以aS会被重置,当
临时
的是(在语句的末尾)我感兴趣的是在调用
static_cast
时
临时
创建
的过程。为了看到这种效果,我希望有可以跟踪的代码。我不能使用
static_cast
<auto_ptr<Circle>> ...,因为它无法编译,所以我需要编写一些模拟
类</
浏览 0
提问于2011-12-20
得票数 4
回答已采纳
1
回答
xvalue/prvalue类别真的重要吗?
、
创建
xvalue的唯一方法是使用
static_cast
< T&>转换。是的,还有另外三种情况,但它们都需要另一个xvalue。因此,为了简单起见,我认为这是目前唯一的方法。我们需要把东西传给
static_cast
。我们叫它吉兹莫吧。无论gizmo到底是什么(lvalue或rvalue),
static_cast
的结果都是对完全相同的事物的rvalue引用(我的意思是它不会产生任何
临时
对象)。< T>或传递
到
具有非引用结果的函数)将
创建
<em
浏览 0
提问于2015-02-21
得票数 0
回答已采纳
4
回答
重写派生
类
中的模板
基
方法?
、
、
假设我有一个
基
类
,如下所示:class Base { void do_something() { /*... */ } ;然后,
创建
一个Derived
类
,如下所示,并重写do_something()方法:class Derived : publicBase<T> { //
浏览 0
提问于2017-04-29
得票数 3
回答已采纳
1
回答
对
static_cast
在C++中的理解
我正在努力理解
static_cast
是如何工作的。我有以下代码:
static_cast
<Projcet*>(DS)->removeProjcet(ID);编辑: 忘了提到:void *DS和Projcet是一个
类
。
浏览 0
提问于2019-06-16
得票数 0
1
回答
为什么
CRTP中的下流定义行为?
、
、
、
我使用CRTP模式已经有一段时间了,然而,读到关于与下线转换有关的未定义行为的答案时,我不明白
为什么
static_cast
<Derived&>(this) ( this类型为Base<Derived>*这一标准十分明确: 如果new_type是一个指针或对某个
类
D的引用,并且表达式的类型是一个指针或对它的非虚
基
B的引用,则
static_cast
如果B是D的模棱两可的、不可访问的或虚拟
浏览 0
提问于2019-02-19
得票数 4
回答已采纳
4
回答
将指向派生
类
的指针强制转换为指向
基
类
的指针的引用
、
、
、
为什么
我不能将指向派生
类
的指针强制转换为引用指向
基
类
的指针?struct Base { };{
static_cast
<Base*&>(derived);我得到了: invalid
static_cast
from type 'Derived*' to type 'Base*
浏览 0
提问于2015-01-16
得票数 0
2
回答
为什么
将好奇模板模式的
基
类
直接转换为另一个
基
类
是错误的?
、
我想减少具有crtp模式的
类
中的重复代码。以下示例的要点如下 非常感谢。typename T>
浏览 2
提问于2017-03-21
得票数 1
回答已采纳
1
回答
不允许
static_cast
从'QgsVectorLayer *‘
到
'QgsMapLayer *',这与继承无关。
、
、
类
QgsVectorlayer派生于
基
类
QgsMapLayer,
基
类
QgsMapLayer派生于
基
类
QObject。我想将QgsVectorlayer对象强制转换为
基
类
。这应该很容易被占有,但我有一个错误,不明白
为什么
。我的理解是,这应该自动被类型抛出,或者我可以使用
static_cast
<type>(variable)转换它,但是我得到了一个错误,并且不明白
为什么
。Q
浏览 33
提问于2022-04-14
得票数 2
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
C+RTTI 和四种类型转换
如何使用C+原型模式轻松实现对象复制和动态创建?
git变基
理解PHP中的stdClass类
关于删除CDH中Kafka 的Topic 实战
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券