繁体   English   中英

C ++函数声明

[英]C++ function declaration

我正在研究一些C ++教程,并在类内部遇到了函数声明

class CRectangle {
    int x, y;
public:
    int area (void)  {return x*y;}
};

现在我想知道int之后的void的用途是什么?

在这种情况下, void表示该函数不接受任何参数。

另外-语法错误,您可能用{}括号括起来,并且分号放在错误的位置。

int area (void){ return (x*y); }

在C ++中,void参数类型是不必要的。 用空参数列表声明的函数是等效的。 合法的原因是允许C代码进行编译而不会出错。

C语言中必须使用void参数类型,因为用空参数列表声明的函数可以接受任意数量的任何类型的参数。 这是pre-ANSI C(也称为K&R C)的残余。K&R C不需要函数原型。

此代码无效。 应该是(也将空白更改为更清楚,但问题不关乎它)

int area(void) { return (x * y); }

int area(void)是成员函数签名— int是返回的类型, (void)表示空参数列表。 这是一种C-ism,不应在C ++中使用int area()表示同一件事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM