结束类括号后的名称是什么意思
What does the name after the closing class bracket means?
我遇到过这个代码示例,我记得我以前见过它,我不知道它是用来做什么的,它做什么?我在网上搜索过,但运气不好。
代码:
class C
{
int x; // a non-static variable, implicitly private
public:
C() : x(0) {} // default constructor
// a static member function, which uses a non-static variable perfectly well
static int Incr(C& instance) { return ++(instance.x); }
} g_c;
int main(void)
{
C c2;
return C::Incr(g_c) + C::Incr(c2);
}
最后一个类括号后的g_c
是什么意思?
} g_c;
这里,CCD_ 2被声明为类类型CCD_ 3的对象。
这样的构造使您能够创建未命名类型的对象,如:
class //Nameless class!
{
//data members
}obj1, obj2;
在本例中,obj1
和obj2
被声明为未被赋予任何名称的类类型的对象—类是无名称!在这种情况下,不能以传统意义(即Type obj1, obj2;
意义)声明对象。所以这个结构可以帮助你做到这一点。
您甚至可以在无名称的情况下从其他命名的类派生(并声明无名称类的对象):
class : public A, public B //Nameless class is deriving from A and B
{
//data members
}obj1, obj2;
简而言之,这种构造确保了用户将无法创建比预期更多的对象,除非某些邪恶的程序员使用/误用/滥用C++11(或模板)作为:
decltype(obj1) obj3; //hehe!
希望能有所帮助!
它是的缩写
class C
{
....
};
C g_c;
您使用type variable_name;
格式声明变量。例如:
A x;
其中A可以是类的名称。
但是,您也可以在声明新类类型的变量的同时定义类,而不是使用预先存在的类类型:
class { ... } x;
或者定义类并为其命名:
class A { ... } x;
在C++中,通常只定义类并为其命名,但不使用变量:
class A { ... };
但你不必忽略变量。
这只是创建该类对象的一种方法。结构主要使用它们来初始化新变量。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- "friend"关键字在C++中是什么意思?
- 减法中的"0"是什么意思?
- 字符数组前面的加号是什么意思?
- 这里的字符串函数是什么意思