当前位置:  开发笔记 > 编程语言 > 正文

在构造函数定义中使用void是什么意思?

如何解决《在构造函数定义中使用void是什么意思?》经验,为你挑选了2个好方法。

给出以下代码:

#pragma once

class B
{
public:

    B(void)
    {
    }

    ~B(void)
    {
    }
};

我知道我也可以这样写:

#pragma once

class B
{
public:

    B()
    {
    }

    ~B()
    {
    }
};

void在第一个例子中有什么目的?是否某种类型的实践表明构造函数采用参数?



1> dirkgently..:

两者是相同的,至少在C++中是这样.在C中,提供一对空括号通常表示未指定的参数列表(与空参数列表相对).C++没有这个问题.

如何正确回答这么多次?另一个SO漏洞?


至少你是积极的.我最近有一个被接受的(正确的)答案,结果是负面投票.令人不安.

2> TofuBeer..:

很久以前你在C中做过这样的事情(我的ISO-C生锈了:)):

void foo(a, b)
   int a, 
   int b
{
}

在创建C++时,名称mangling需要参数的类型,因此对于C++,它被更改为:

void foo(int a, int b)
{
}

而这一变化被提升到C.

在这一点上,我相信避免破坏现有的C代码:

void foo() 

还有这个:

void foo(void)

意思是两个非常不同的东西,()意思是不检查参数号或类型,并且(void)意味着不带参数.对于C++ ()意味着不检查任何东西是不会那么工作()(void)意味着在C同样的事情++.

所以,对于C++而言(),(void)总是一样的.

至少那是我记得它的方式...... :-)

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有