注册 登录
编程论坛 C++教室

令人困惑的运行结果

zzh193 发布于 2007-08-16 16:01, 501 次点击

请看以下程序在C++ BUILDER6.0下的运行结果:
#include<iostream>
using namespace std;

class MyClass{
int number;
public:
MyClass();
~MyClass();
void Display();
};

MyClass::MyClass(){cout <<"Constructing normally.\n";}

MyClass::~MyClass(){cout <<"Destructing.\n";}

void MyClass::Display(){
cout <<"Display a number: "<<number <<endl;
}

int main(){
MyClass obj1;
obj1.Display();
}
运行结果为:
Constructing normally.
Display a number: 1
Destructing.
请问各位高人:第二行最后一个字符为什么是1不是0?

4 回复
#2
aipb20072007-08-16 16:07
你先告诉我为什么你觉得你0?

我还觉得是 4 5 6 7 8 ……呢,一句话,说不准。
仔细想想吧!
#3
zzh1932007-08-16 16:17
回复:(aipb2007)你先告诉我为什么你觉得你0?我还觉...

如果说是不确定,哪为什么每次都是1,而不是别的数呢?

#4
aipb20072007-08-16 16:27

不确定,不是你那个意思。
你用的builder吧,如果我用dev-cpp,出来的肯定不是1,如果我用vc,出来的是个大负数。
每种编译器有他自己处理这样未定义行为的机制,懂吗?

你把构造对象那句话写在main函数外面去,再运行,出来的就是 0 了。

[此贴子已经被作者于2007-8-16 16:30:19编辑过]

#5
zzh1932007-08-16 16:40

懂了,版主真的很厉害,向你学习了,谢谢啦!

1