C++编程思想 第二章对象的创建和使用

来源:互联网 发布:大数据呼叫中心 编辑:程序博客网 时间:2024/06/05 16:50

2.1 语言的翻译过程

2.1.1

解释器

        BASIC就是一门解释性语言,就是解释一行执行一行,所以占用很多内存,执行速度也难以让人接受。

2.1.2

编译器  、

        直接把源文件转化成汇编或者机器指令,最终的结果是一个或者多个机器代码文件。

2.1.3

编译过程

        一般分为2个步骤, 第一遍建议树形结构 ,第二遍有代码生成器便利语法生成树。

        连接器 ,将一组目标模块,和变量(包括外部变量)连接成可执行文件。

         2.1.3.1

          静态类型检查,类型检查是编译器在第一遍来完成的。

2.2

分段编译工具

2.2.1.1

         声明和定义

         函数的声明    int  fun(int a ,int b);   返回值    函数名(参数表)

         2.2.1.2一点说明  在C语言中int run() ,不是在代表无参数,是可以带任意类型参数。

         2.2.1.3   int fun(int a,int b) {} 大括号就代表分号了。

         2.2.1.3变量声明的语法

         int  a;

          2.2.1.5 包含头文件

          #include<iostream>  

          #include"iostream" 

          区别是  尖括号的会在首先inlude的文件夹中寻找,而引号的会首先在工程目录中寻找,如果编译器的文件就用<>  如果是用户自己创建的头文件 用引号比较好

          2.2.1.6标准的C++包含头文件

          #include<stdio.h>       在文件名前加个字母c 

          成为

          #include<cstdio>  如果在同一程序中混用这两种形式会遇到问题。

2.2.2 连接

          连接器把  有编译器生成的目标模块(一般是带.obj的扩展名的文件)连接成可执行文件。

2.2.3使用库文件

         连接器如何查找库

          如果连接器在目标模块列表中不能找到函数的定义,它将去查找库,库有多种的索引方式,库只是浏览库索引当找到定义后,就将整个目标模块而不仅仅是函数定义连接到可执行程序,而不是将整个库加载到可执行程序,那样程序将无限大。

2.2.3.2 秘密的附加模块

          当创建一个C/C++可执行程序是,连接器会秘密连接某些模块,其中之一就是启动模块,它包含了对程序初始化的例程,初始化历程建立堆栈,初始化程序中某些变量。

2.3 编写第一个C++程序

           2.3.1使用iostream类

            cout<<"howdy!";

2.3.2 名字空间

          为什么会有名字空间这个东西呢,因为程序达到一定的规模后,命名就会出现问题,感觉该用过的都用了 。所以就出现名字空间

           using namespace std; 在整个文件中 都会使用std这个标准名字空间知道下一个名字空间的出现。

2.3.3

程序的基本结构

2.4

关于输入输出流

字符串的拼接

 #include<iostrem>

using namespace std;

void main(void)

{

       cout<<"this is too long to go there "

         " I can not finish the ..." 

          "fdjsa;lfjdasfjl;akfjla;jflk;ajf;ladjlfk"    

}

乍看上去 ,上述程序好像错了,因为每行都没有分号, C++的自由格式。每条语句可以写好几行直到分号代表语句结束。

2.5

字符串简介

#include<iostream>

#include<string>

using namespace std;

 

int main(void)

{

          string s1,s2;

           string s3 = "hello world";

           string s4("I am');

           s2 = "Today";   

            s1 = s3+" " +s4;

            s1+="8"; 

}   

s3,s4 介绍了两种不同的初始化方法.

2.6

文件的读写

必须包含fstream的头文件

ifstream  就像cin  打开文件写文件

ofstream 就像cout  打开文件读文件

getline()第一个参数是ifstrema对象  第二个是stream对象

例子

#include<fstream>

#include<iostream>

void main(viod)

{

          ifstream in ("Scopy.cpp");

          ofstream out(Scopy.cpp);

           string s;

           while(getline(in,s))

           {

                     cout<< s<<"\n";

            } 

}

把整个文件拷贝到string对象中

#include<iostream>

#include<fstream>

using namespace std;

void main(void)

{

             ifstram   in("fillstrnig.cpp");

             string  s ,line;

             while(getline(in,s))

             line+= s+"\n";

             cout << s;

}

string 具有动态性不必担心内存分配不足。好处string类中有很多针对字符串的函数 处理查找和操作方便,可以把文件当字符串来操作。

2.7

vector简介

C++标准容器  第一类容器 

创建vector 

 vector<int> a;类似于数组,自身带有一些方法。

 

原创粉丝点击