首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解两个结构体(函数式)中的类型定义的作用域

理解两个结构体(函数式)中的类型定义的作用域
EN

Stack Overflow用户
提问于 2012-01-13 02:42:09
回答 4查看 147关注 0票数 0

如果我在一个结构(函数式)中typedef了一些类型,typedef的作用域是不是结构的局部的?

考虑下面的例子,我在两个单独的函数器中将foo定义为一个int和一个double。这个例子是正确的吗?

代码语言:javascript
复制
template <typename T> 
struct firstfunctor 
{ 
  typedef int foo; 

  foo operator()(const foo& a, const foo& b) 
  { 
    return /*whatever*/
  } 
}; 

template <typename T> 
struct secondfunctor 
{ 
  typedef double foo; 

  foo operator()(const foo& a, const foo& b) 
  { 
    return /*whatever*/
  } 
}; 
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-13 02:45:05

是的,typedefs的作用域是有范围的,您可以分别定义成员类型firstfunctor::foosecondfunctor::foo

票数 5
EN

Stack Overflow用户

发布于 2012-01-13 03:00:57

是的,typedefs是作用域。在使用它们时,必须指定作用域。

这适用于对象、类和库。作用域通常限于在一组{ }中定义的内容。

票数 1
EN

Stack Overflow用户

发布于 2012-01-13 02:45:28

是。

这也适用于函数和名称空间。

该类型将是firstfunctor<>::foo限定的。您可以将其设置为私有,尽管C++11的auto允许您绕过这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8840501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档