相关疑难解决方法(0)

353
推荐指数
18
解决办法
30万
查看次数

如何在C++中确定运行时的实际对象类型;

让我们说我们有一个类层次结构.在底部我们有Base和顶部Derived.如何确定对象类,即使它被转换为基类指针.

Base* b = new Derived():

typeid(b).name(); // i want this to tell me that this is actually derived not base object
Run Code Online (Sandbox Code Playgroud)

有什么方法除了手动实现字符串字段或这样的虚拟get函数?

PS:我在谈论与编译器无关的解决方案

c++ typeid typeinfo

17
推荐指数
2
解决办法
2万
查看次数

如何检索要在模板中使用的函数的返回类型?

我有一个函数在某处调用x,返回一个已知值并具有已知参数:

int x(int y);
Run Code Online (Sandbox Code Playgroud)

我还有其他地方,我想创建一个容器来包含n这个函数的调用.然后我想多次执行它.

问题是,我不想依赖它作为int返回类型.我需要在编译时推断出返回类型.就像是:

std::vector<result_of<x(int)>::type> results;
Run Code Online (Sandbox Code Playgroud)

但我不想指定参数值,因为它们是静态的.

c++

9
推荐指数
2
解决办法
1182
查看次数

错误:预期在“decltype”之前出现主表达式

我正在尝试查找变量的类型。在 stackoverflow 中提到了decltype()用于此目的。但是当我尝试使用它时,它会抛出我在标题中提到的错误。

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int x = 4;
    cout << decltype(x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我预料到了int,但它显示为错误。error: expected primary-expression before 'decltype'

c++ windows mingw

8
推荐指数
1
解决办法
5055
查看次数

C++ 有比较变量类型的函数吗?

在Python中,为了比较变量的类型,有一个函数“type”,例如:a = 10和b =“abc”,类型(a)!= 类型 (b)。C++中有类似的东西吗?我有一个基类对象向量,我想查看该向量的元素是否已声明为派生类。

c++

2
推荐指数
1
解决办法
2404
查看次数

`long long int a=50` 和 `int a =50LL` 有什么区别?

我从 Josh Lospinoso 的 C++ 速成课程开始学习 C++。

我无法将我的思想集中在“类型”上。

long long int a=50和 和有什么区别int a =50LL?对我来说,他们俩看起来都像long long int

我尝试运行这个:

#include<cstdio>
int main() {
    long long int a=50;
    int b=50LL;
    printf("a is %lld and b is %lld",a,b);
}
Run Code Online (Sandbox Code Playgroud)

并得到:

a 为 50,b 为 18042367336513586

所以格式说明符或有问题int b=50LL

将 b 的格式说明符更改为%d. 我得到:

a 为 50,b 为 50

那么这是否意味着这b是默认的 'int' ?如果是的话,那么它的作用是什么LL

在浏览类型时,我发现了这个。所以我尝试运行这个:

#include <iostream>
#include <typeinfo>

int main(){
    long long int a …
Run Code Online (Sandbox Code Playgroud)

c++ types

2
推荐指数
1
解决办法
172
查看次数

如何在C++中检查输入是整数,字符串还是浮点数

我想知道的是,如果我要求用户输入内容,如果输入是整数或字符串或浮点值,我将如何输出.我想要一些方法来检查C++ 14中输入的数据类型.

例如.

如果输入是"Hello world"

输出应为:"输入为字符串"

如果输入为"134"

输出应为:"输入为整数"

如果输入是"133.23"

输出应为:"输入是浮动的"

c++ c++14

0
推荐指数
3
解决办法
2188
查看次数

标签 统计

c++ ×7

c++11 ×1

c++14 ×1

mingw ×1

typeid ×1

typeinfo ×1

typeof ×1

types ×1

variables ×1

windows ×1