1 #include<iostream> 2 3 using namespace std; 4 5 class rectangle 6 { 7 public: 8 rectangle(){cout<<"构造了一个长方形a"<<endl;} 9 rectangle(int a,int b){a=i;b=j; cout<<"构造的长方形的面积为:"<<a*b<<endl;} 10 rectangle(int a,int b,int c){a=i;b=j;c=k;cout<<"长方形的体积为:"<<a*b*c<<endl;} 11 12 private: 13 int i; 14 int j; 15 int k; 16 }; 17 18 19 int main() 20 { 21 rectangle a; 22 rectangle b(2,3); 23 rectangle c(2,3,4); 24 25 return 0; 26 27 }
这个程序编译器不会报错,可以运行起来就是不对的。因为定义函数时,在变量赋值时,前后颠倒了。i,j,k系统给了随机数后赋给了a,b,c.
程序虽小,可是让我深刻懂得一个道理:编译器不能测试出所有的错误,编译器测不出的错误才更可怕!