【发布时间】:2011-10-31 12:09:33
【问题描述】:
struct Foo {};
struct Bar : Foo {};
Foo &foo = Bar; // without ()
我想知道,这是一个合法的符号吗?如果它是合法的,你能提供一些细节吗?比如,为什么它是合法的?或者,这种符号的起源是什么?
编辑:我无法编译这段代码。但是我遇到了这样的代码,想知道是否允许这样的表示法(可能只是我的编译器不支持这种表示法)。我有一些不确定性,因为以下符号非常合法:Foo *pFoo = new Bar;
【问题讨论】:
-
带或不带括号代码是非法的。你真正关心的是什么?你为什么对这个感兴趣?
-
支持者是怎么回事?这个问题毫无意义,用户甚至没有尝试通过编译器运行代码(任何一种变体)......但是有 2 票赞成?
-
我认为
struct Foo {}也不合法。 -
在最好的情况下将类分配给对象往往是一个错误。当你执行“struct Foo”时,你声明了一个名为 Foo 的结构类型,所以这段代码试图将一个类类型 (Foo) 分配给一个对象类型 Foo()
-
@nos:我不认为 可以通过几次击键来修复。或者你认为这合法吗?
int (){}一个正确的问题?它只缺少 4 个字符:main
标签: c++ syntax constructor