C++11 c++;为什么;A()&引用;不会调用构造函数

C++11 c++;为什么;A()&引用;不会调用构造函数,c++11,C++11,为什么是A();不会调用构造函数吗? 为什么sizeof(C)是1 C类 { 公众: C(){ 库特 它不会创建一个名为a的C实例,该实例声明一个名为a的函数,该函数不带参数并返回一个C 要获得您想要的,您有两个主要选择: C a; C a{}; //c++11 < C++ >代码> >(代码) 1代码>代码>,因为C++中的每个对象至少占用一个字节,即使没有任何意义的存储。如果你有一个数组“ >代码>,请考虑一下,如果 siZeof(C)< /C> > 0 > /代码>, CyLab[0

为什么是A();不会调用构造函数吗? 为什么sizeof(C)是1

C类
{
公众:
C(){
库特
它不会创建一个名为
a
C
实例,该实例声明一个名为
a
的函数,该函数不带参数并返回一个
C

要获得您想要的,您有两个主要选择:

C a;
C a{}; //c++11

< C++ >代码> >(代码)<代码> 1代码>代码>,因为C++中的每个对象至少占用一个字节,即使没有任何意义的存储。如果你有一个数组“<代码> >代码>,请考虑一下,如果<代码> siZeof(C)< /C> > <代码> 0 > /代码>,<代码> CyLab[0 ] < /C> >将与<代码> CyLaS[[ 10 ] ]相同地址。“C++”不允许两个不同的对象具有相同的地址。

1。如果要在创建新对象时调用构造函数, 代码应该是这样的:

C a

C*a=新的C()

2.因为任何对象在内存中的地址都不应与任何其他变量相同


因此,如果类或结构没有变量或函数,那么sizeof(class)=1。

。什么
A
?我只看到
C
。对于第二个问题,他问为什么没有成员变量时它的大小是
1
。而不是它是否有。是的,我会编辑它
C a();
C a;
C a{}; //c++11