class CRectangle {
int x, y;
public:
void set_values (int,int);
int area (void);
} rect;
在这个例子中,在这个类定义中,右括号之后的'rect'和分号之间的含义是什么?我找不到明确的解释。另外:不管是什么,你也可以为结构做这件事吗?
答案 0 :(得分:11)
rect
是变量的名称(在这种情况下是一个对象)。
就像它说的那样:
int rect;
除了代替int
之外,还有一个新类型的定义,称为CRectangle
。通常,类类型是单独声明的,然后用作
CRectangle rect;
正如您可能熟悉的那样,但将新类型声明为此类声明的一部分是完全合法的。
是的,它适用于结构:
struct SRectangle { int x, y; } rect;
事实上,如果您不打算再次使用它,您甚至不必为该类型命名:
struct { int x, y; } rect;
这被称为“匿名结构”(它也适用于类)。
答案 1 :(得分:2)
CRectangle类型的对象是全局的或属于名称空间,具体取决于上下文。
答案 2 :(得分:1)
它声明了一个实例。就像:
class CRectangle
{
// ...
};
CRectangle rect;
C ++中的class
和struct
之间没有区别,除了struct
默认为public(关于访问说明符和继承)
答案 3 :(得分:1)
结构和类之间的唯一区别是结构体具有公共默认继承和访问,而类使用私有作为默认值。