C++代码 为什么输出的是-858993460

来源:百度知道 编辑:UC知道 时间:2024/06/05 19:00:15
#include<iostream>
using namespace std;
class A
{
public:
A(int x){int val=x;}
void print_out();
private:
int val;

};
void A::print_out()
{
cout<<val<<endl;
}

void main()
{
//int val=int(5);
//cout<<val<<endl;
A a(3);
a.print_out();

}

你函数里面写错了,A(int x){int val=x;} 构造函数里面的int val是声明一个局部变量并不是全局变量,因此在函数里面使用自己的空间,函数执行完之后就释放掉了。但是对于全局变量 val你并没有赋值,因此打印出来的是一个随机值。
应该在构造函数里面这样写才能够使用到类的全局变量:
A(int x){val=x;} (去掉int)