c++ primer(第四版)学习札记 8-23

王朝c/c++·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

1、容易混淆的问题:ex2_31

(a) extern int ix = 1024;

(b) int iy;

(c) extern int iz;

(d) extern const int &ri;

确定以上四个,哪些是定义,哪些是声明

这就决定了语句放置的位置,是在头文件中亦或是c++文件中,因为头文件是声明,不是定义。如果多处定义,将会造成link错误

(a)很明显是定义,因为都赋了初值了

(b)没有extern,所以也是定义,变量在声明的同时也被系统默认赋了初值

(c)声明,用extern来声明使用在其他文件中定义的变量

(d)有点不敢确定,不过如果这个语句正确,那么引用肯定已经赋了初值,所以,这应该是对其他文件中的一个对常量的引用的声明。

2、ex2_33 要求提高编译器的警告等级,看看有什么效果

这个问题其实也可以不研究的,只是那天在VC的选项中看到了编译警告等级,所以来试试在命令行下如何实现

不过也花费了挺多时间的,后来还是自己试出来的,google也不是万能的啊

在cmd中敲入cl/?后,会出现一些编译的可选项(option)

cl [ option... ] filename... [ /link linkoption... ]

然后找到了/W<n>,可以设定编译警告级别,默认的时候n=1,我记得VC默认是3的,于是乎就敲cl /W<4> ex1_8.cpp居然告诉我找不到文件!觉得奇怪,在google一阵子没有结果后就开始乱试,看来程序编多了,有些事情都忘记了,其实只要敲cl /W4 ex1_8.cpp就可以了,唉,居然当作cout那样的形式了,狂晕中。。。

研究的结果是,1-3级的效果都是一样的,仅给了我一个warning而已,而4级就有点可怕了,一下子跳出了几十个(夸张)warning,很多都是系统库的warning,暂时还不明白,这些警告的作用

3、防止重复include头文件:

#ifndef SALESITEM_H

#define SALESITEM_H

// Definition of Sales_itemclass and related functions goes here

#endif

这样就可以避免了,如果该头文件再次被include的时候,碰到ifndef时就会跳过了。

4、""和<>的区别

#include <standard_header> 表示系统的头文件,在系统目录中找

#include "my_file.h" 表示自定义的头文件,在本地目录中找

第二章结束 变量和基本类型

5、进入第三章,就是区别c和c++的地方了,以前学数据结构的时候,书上说,表现ADT(抽象数据型),用c++最合适,后来在BS的DNE上也看到这句话,也就是说,c++从基本类型中发展出了很多新类型,更加方便程序的编写,c++的一切才刚刚开始。。。

——end—— next:3.2 Library string Type

PS:本来想看完string的,但是太长了,明天继续吧~

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航