在c+中,默认构造函数给类的数据成员的值是多少+;? 在java中,构造函数给出的默认值是0,我听说C++中的默认值不是构造函数给出的,但是我做了一个简单的程序,打印了数据成员的值,打印了0,这样, #include<iostream> class testclass { int value1; int value2; public : void print(){ std::cout<<value1<<value2; } }; int main(){ testclass t1; t1.print(); return 0 ; } #包括 类testclass {int value1; int值2; 公众: 作废打印(){ 标准::cout < >我听说在C++中,默认值不是由构造函数给出的,但是我做了一个简单的程序,打印了数据成员的值,打印了0个这样的值。 #include<iostream> class testclass { int value1; int value2; public : void print(){ std::cout<<value1<<value2; } }; int main(){ testclass t1; t1.print(); return 0 ; }

在c+中,默认构造函数给类的数据成员的值是多少+;? 在java中,构造函数给出的默认值是0,我听说C++中的默认值不是构造函数给出的,但是我做了一个简单的程序,打印了数据成员的值,打印了0,这样, #include<iostream> class testclass { int value1; int value2; public : void print(){ std::cout<<value1<<value2; } }; int main(){ testclass t1; t1.print(); return 0 ; } #包括 类testclass {int value1; int值2; 公众: 作废打印(){ 标准::cout < >我听说在C++中,默认值不是由构造函数给出的,但是我做了一个简单的程序,打印了数据成员的值,打印了0个这样的值。 #include<iostream> class testclass { int value1; int value2; public : void print(){ std::cout<<value1<<value2; } }; int main(){ testclass t1; t1.print(); return 0 ; },c++,class,constructor,C++,Class,Constructor,一些编译器可能会这样做,但根据标准,使用这些成员变量是导致未定义行为的原因 不要指望它们。请确保您的成员变量已正确初始化 使用 或 没有自己的默认构造函数且未在类的构造函数中初始化的类数据成员具有不确定的初始值。您的值为0这一事实只是巧合,这在很大程度上取决于您如何定义变量以及在何处。方便阅读:。由于运气不好,编译器实现者所做的选择可能会导致某些错误ING没有保证保证看起来最好,不要让任何机会都能知道规则或者确保你已经设置了你需要的一切。“我听到C++中的某处”是错误的学习C++的方式。 cla

一些编译器可能会这样做,但根据标准,使用这些成员变量是导致未定义行为的原因

不要指望它们。请确保您的成员变量已正确初始化

使用


没有自己的默认构造函数且未在类的构造函数中初始化的类数据成员具有不确定的初始值。您的值为0这一事实只是巧合,这在很大程度上取决于您如何定义变量以及在何处。方便阅读:。由于运气不好,编译器实现者所做的选择可能会导致某些错误ING没有保证保证看起来最好,不要让任何机会都能知道规则或者确保你已经设置了你需要的一切。“我听到C++中的某处”是错误的学习C++的方式。
class testclass
{
   int value1;
   int value2;

   public:
     testclass() : value1(0), value2(0) {}
   ...

};