谭浩强老师编辑的《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 ;
以上是鄙人作为一个初学者的一些个人见解,如果错漏,希望不要见怪,谢谢!