在最后一个例子中,注意add()写成一个非成员函数。因此,它可以直接调用。我们没有使用add()美分。因为我们没有为这个版本的分类编写的一个add()成员函数。我们当然有可能,但它是更容易在行动中展示这种方式匿名变量。
仙(7)_is_匿名变量,因为这是从来没有一个变量名。也许我在你的这部分的问题的误解?
匿名变量总是与处理的价值。这是不可能创造一个指针或引用一位匿名的变量,也不能使用一个匿名的变量指针或引用参数或返回值预计。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
class
Cents { private : int
m_nCents; public : Cents( int
nCents) { m_nCents = nCents; } int
GetCents() { return
m_nCents; } }; Cents
Add(Cents &c1, Cents &c2) { return
Cents(c1.GetCents() + c2.GetCents()); } int
main() { Cents
cCents1(6); Cents
cCents2(8); std::cout
<< "I
have "
<< Add(cCents1, cCents2).GetCents() << "
cents."
<< std::endl; return
0; } |
这个版本的add()功能相同的一个以上的,除了它使用匿名美分价值而不是一个命名变量。还注意到,在main(),我们不再使用命名ccentssum变量作为临时存储。相反,我们使用的返回值的add()匿名!
作为一个结果,我们的计划是短的,清洁的,和一般容易跟随(一旦你理解的概念)。
在C++中,匿名变量主要是用来传递或无需创建临时变量很多这样的返回值。然而,值得注意的是,匿名对象只能通过或返回值!如果一个变量被通过或通过引用或地址返回一个已命名的变量,而不是必须使用。另外值得注意的是,因为匿名变量表达的范围,如果您需要在多个表达式参考价值,你将不得不使用一个已命名的变量。