gpt4 book ai didi

c++ - Test t; 之间有什么区别?和测试 t();?如果 Test 是一个类

转载 作者:可可西里 更新时间:2023-11-01 18:00:24 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Why is there no call to the constructor?

我正在使用 Visual Studio 2012,假设 Test 是一个类

class Test
{
};

当我创建一个新的Test实例时,下面两种方式有什么区别?

方式一

Test t;

方式二

Test t();

我在下面的代码中遇到了这个问题,本来,我用方式2定义了一个A的实例,我只得到一个错误,因为B没有提供默认构造函数,但是当我用方式1定义它时,我得到了一个额外的错误。

class B
{
B(int i){}
};

class A
{
A(){}
B b;
};

int main(void)
{
A a(); // define object a in way 2

getchar() ;
return 0 ;
}

如果我用方式1定义一个

A a;

我会得到另一个错误提示

error C2248: 'A::A' : cannot access private member declared in class 'A'

所以我想这两种方式之间肯定存在一些差异。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com