开始

来源:互联网 发布:淘宝一件代发发货地址 编辑:程序博客网 时间:2024/04/21 00:24

今天开始阅读Stanley Lippman的C++Primer,是潘爱民 张丽 翻译的。

第一读:开始

1.C++除了一些简单的数据类型,比如int,char, boolen, double等,还有一些较为复杂的数据类型,比如string,vector,complex number,以及list(列表)。要使用string,必须#include<string>,要使用vector,必须#include<vector>。

2.vector向量的定义方法如下,vector<string> str(20),这说明了str(这个向量的名字)时一个向量,它有20个string类型的元素。同理vector<int> intger(20)表示的是一个包含了20个整型元素的向量。

3.当然上述的类型还不足以包括我们日常生活中所需要的所有类型,所以C++中有了类这个机制,类机制其实就是我们认为创造出的数据类型。

4.#include叫做预处理器指示符,预处理器指示符用“#”标识,这个符号将放在程序中改行的最起始一列上。#include指示符读入指定文件的内容,有两种格式:

      #include<some_file.h>

     #include"my_file.h“

第一种表明这个文件是一个工程或者标准头文件,查找过程会检查预定义的目录。第二种则表示该文件是用户提供的头文件,查找该文件时将从当前文件目录开始。

5.条件指示符#ifndef可以防止头文件被多次包含在一个源文件中。比如

  #ifndef BOOKSTORE_H

  #define BOOKSTORE_H

/*Bookstore.h的内容*/

#endif

条件指示符#ifndef 检查BOOKSTORE_H 在前面是否已经被定义这里BOOKSTORE_H是一个预编译器常量习惯上预编译器常量往往被写成大写字母如果BOOKSTORE_H在前面没有被定义则条件指示符的值为真于是从#ifndef 到#endif 之间的所有语句都被包含进来进行处理相反如果#ifndef 指示符的值为假则它与#endif 指示符之间的行将被忽略。

6.#ifdef指示符常被用来判断一个预处理器常量是否已经被定义,以便有条件地包含程序代码:比如:

int main()
{
#ifdef DEBUG
cout << "Beginning execution of main()\n";
#endif

string word;
vector< string > text;
while ( cin >> word )
{
#ifdef DEBUG
cout << "word read: " << word << "\n";
#endif
text.push_back( word );
}
// ...
}
本例中如果没有定义DEBUG 实际被编译的程序代码如下
int main()
{
string word;
vector< string > text;
while ( cin >> word )
{
text.push_back( word );
}
// ...
}
反之如果定义了DEBUG 则传给编译器的程序代码是
int main()
{
cout << "Beginning execution of main()\n";
string word;
vector< string > text;
while ( cin >> word )
{
cout << "word read: " << word << "\n";
text.push_back( word );
}
// ...
}

7.


原创粉丝点击