学C++时偶然的一个错误

 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.

程序虽小,可是让我深刻懂得一个道理:编译器不能测试出所有的错误,编译器测不出的错误才更可怕!

你可能感兴趣的:(C++)