【发布时间】:2012-03-30 04:22:42
【问题描述】:
template<int n>
struct Numberim{
enum{ value = Numberim<n-1>::value + n };
};
template<>
struct Numberim<0>{
enum{ value = 0 };
};
这是一个简单的tmp示例,没关系;
template<int n>
class Numberim{
enum{ value = Numberim<n-1>::value + n };
};
template<>
class Numberim<0>{
enum{ value = 0 };
};
我使用 g++ 编译,它抱怨...但是,据我所知,结构和类的处理方式几乎相同。就像这样“在 C++ 中,结构和类之间的唯一区别就是struct成员默认是public,class成员默认是private。”
那么,它们在地球上的区别是什么?
【问题讨论】:
-
it complains.- 它是怎么抱怨的? -
你认为有什么不同?
-
@Jesse g++ 像这样说“错误:'Numberim::
Numberim::value' 是私有的”,嗯......我想我很天真问这个问题。谢谢。 -
@stuser974349:答案就在你的问题中:
class members are private by default,我不明白你的困惑。 @josephthomas:你的意思可能是class's而不是struct's。 -
stuser974349:这是因为结构体默认是公开的。请看我的回答。
标签: c++ class templates struct