gpt4 book ai didi

c++ - 关于c++中的括号

转载 作者:行者123 更新时间:2023-11-30 04:27:26 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
decltype and parenthesis

int i=6;
decltype((i)) var5 = i; // int&

我只是不明白为什么括号中的'i'被认为是左值,现在,我知道了括号的应用,直到我在MSDN中发现:The inner parentheses cause the statement to be evaluated as an expression而不是成员(member)访问。(http://msdn.microsoft.com/en-us/library/dd537655.aspx),我也没有理解我很长时间没有理解的问题。

template<typename T>
class B
{
public:
B(T t){printf("B\n");}

};
template <typename T >
void ft(T t)
{
t.f();
}
int _tmain(int argc, _TCHAR* argv[])
{
B<A> b1(A()); //one function declaration, A() is regarded as fun-ptr, and b1 is a function
B<A> b2((A())); //A() is regarded as anonymous object.
return 0;
}

为什么 A() 放在括号中如 (A()) 时被视为匿名对象。 MSDN 中关于 decltype 的内括号解释不适用于这种情况。有人能告诉我在 C++ 标准中这两种情况下是否有关于括号函数的扩展。我应该如何更好地理解这一点,非常感谢!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com