谭浩强老师编辑的《C++面向对象程序设计》这本书写得非常好,令我可以在短时间内了解并熟悉C++的相关内容,在此感谢谭浩强老师与编辑社的辛勤努力!
在阅读《C++面向对象程序设计》 3.11类模板时,发现这个小节中有一个小错误。
3.11类的模板,在112页中,声明了这么一个类
1行 class Compare_int
2行 {public:
3行
Compare(int a,int b) //这个并不是类的构造函数,因为函数名和类名不同
4行
{x=a;y=b;}
5行
int max()
6行
{return (x>y)?x:y;}
7行
int min()
8行
{return (x<y)?x:y;}
9行
private:
10行
int x,y;
11行 };
在113页倒数第五行,有这么一条语句: Compar_int cmpl(4,7); //Compar_int
是已声明的类
我认为,在112页类 Compar_int中的Compare(int
a,int b)并不是类的构造函数,因为函数Compare(int a,int b)的名称和类 Compar_int的名称并不一致。这个类中没有显著地定义了类的构造函数,所以在定义类的对象时,系统会调用默认无参数的构造函数。所以在113页定义对象时,不能够调用有参数的构造函数。语句( Compar_int
cmpl(4,7);)是错误的,应该改为 Compar_int cmpl
;
以上是鄙人作为一个初学者的一些个人见解,如果错漏,希望不要见怪,谢谢!