首先说我也是个C++初学者,因此这只是我学习C++这一段时见来的我的看法。
我推荐初学者应该买两本书,《C++ primer plus》和《C++ primer》,对于这两本书的你们通常都认为,前者是c++初学者最应该买的,讲解细致,面向c++零基础者,而对于后者。不少人都说应该是c++学过一遍想继续提升时买的一本书,由于初学者看这本书是很是难搞懂的。我很是赞成这种广泛见解,可是我想说本身的一点小见解。
我以为这两本书一块儿买,是最好的,这是由于我刚在看plus这本书的第六版的函数重载这一节时候,对于形参是否能够用const来区分讲的不够,plus书上说的是“匹配函数时,并不区分const和非const变量”,而后举了个例子,例子却说的是能够区分,我把主要的代码写下来:
const char p1[20]="How's the weather?";
char p2[20]="How's the business?";
dribble(p1);//调用dribble(const char *)
dribble(p2);//调用dribble(char *)
前面的dribble是函数名,书上开始说的是“匹配函数时,并不区分const和非const变量”,却举出了这样的例子,而且运行时能区分的,这难免让初学者一头雾水,我纳闷了半天
我还试了能不能区分const int和int,可是编译报错,这到底是怎么回事啊,这时,我拿出了个人《C++ primer》,翻到函数重载,这书上就讲到了,const分顶层和底层,重载函数的形参,若是一个是int,另外一个是const int,这里的const是顶层const,不能重载,然而“底层const”是能够区分的,我再一看,原来c++
const char p1[20]="How's the weather?";
这个代码中的const是底层const,因此!我以为仍是初学者两本买着好哈哈,我想说的就这个 我建了个群348538085 欢迎入群~!