是否可以在没有结构的情况下创建新的类型变量?
Is it possible to create new type variable without struct?
这是我得到的,但是当我检查类型时,它显示"struct MyVarName"
#include <iostream>
#include <typeinfo>
typedef struct { char text[15];} MyVarName;
int g = 0;
int main(void) {
MyVarName a = { "super" };
std::cout << typeid(a).name() << 'n';
std::cout << typeid(g).name() << 'n';
return 0;
}
是否可以定义自己的变量类型,然后将其用作任何其他变量?
打印,分配新值等。
std::type_info::name()
的结果是实现定义的,可以是任何内容,包括损坏的名称、空字符串或千层面的配方。
例如,海湾合作委员会提供:
9MyVarName
i
显然,您的方法正在采用类似 C 的方法并将其称为struct MyVarName
,这是您必须编写以引用 C 中的类型的内容。
只是不要依赖它来做这种事情。C++不会假装有有意义的反思。
除此之外,您的代码没有任何问题。您确实定义了一个新类型。有一些方法可以引入不需要创建类类型的新类型(即使用struct
或class
(,但这些方法都涉及用typedef
或using
对现有类型进行别名,因此受到限制。它们不允许您创建像std::string
这样的复杂类型。
在 C 中:
typedef char newtype[20];
void foo(void)
{
newtype a;
}
相关文章:
- 是否可以在没有真实文件的情况下创建 ifstream
- 如何在不使用静态矩形方法的情况下创建 IDOMPathGeometryPtr?
- 在没有默认构造函数的情况下创建的派生对象
- 如何在没有侦听器的情况下创建 TCP 连接?
- 如何在不使用宽字符串的情况下创建目录C++?
- 是否可以在没有结构的情况下创建新的类型变量?
- 如何在不知道Arduino中知道其大小的情况下创建数组和存储值
- 如何在不使用虚拟的情况下创建装饰器函数
- 如何在给定任意数量的整数的情况下创建一个唯一键?并使用该键存储,然后从地图中查找
- 在不调用构造函数的情况下创建 Vector 元素
- 我们不能在不使用指向对象的指针的情况下创建节点C++吗?
- 在C++中,如何在没有新元素且不单独声明单个元素的情况下创建"std::initializer_list<base *>"?
- 为什么在这种情况下创建临时实例不起作用?
- 在不调用其构造函数的情况下创建对象
- 如何在不使用C 中使用新操作员的情况下创建对象
- GTKMM:如何在没有建造者的情况下创建弹出菜单
- 如何在 DPI 感知设置为DPI_AWARENESS_CONTEXT_UNAWARE的情况下创建进程
- 如何在不同步的情况下创建线程本地内存
- 如何在给定此定义的情况下创建类的实例
- 如何在不使用透明胶片的情况下创建Qt投影?(因为窗口管理器不支持)