gpt4 book ai didi

c++ - Typedef——为什么这个 C++ 代码有效?

转载 作者:太空狗 更新时间:2023-10-29 19:40:28 25 4
gpt4 key购买 nike

这是一些用 C++ 编写的代码:

#include <iostream>
int main(){
typedef map<int,int> b;
b tC;

b::iterator iMap;
b().swap(tC);
}

我试过:
b.swap(tc);但我一直收到错误。

我不明白的是,为什么不能是 b.swap(tC);

这是编译器问题吗?

抱歉我的英语不好。

最佳答案

因为 b是一种类型。你不能调用 swap在一个类型上。您需要构建一个 b 类型的对象然后调用swap在上面,这就是你用 b().swap(tC); 做的

这一行typedef map<int,int> b;正在创建一个名为 b 的新类型,具有 map<int,int> 的属性.因此,为了使用类型 bb 类型的对象您必须遵循与使用类 map<int,int> 相同的规则.

在类里面map , 函数 swap是一个成员函数。这就是为什么你需要一个对象才能使用它。如果它是一个静态函数,你可以直接在类型上调用它,尽管它的语法有点不同:b::static_function()

关于c++ - Typedef——为什么这个 C++ 代码有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23537406/

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