系列一

来源:互联网 发布:vmware10 mac补丁包 编辑:程序博客网 时间:2024/04/28 14:48
把程序员分成两类:一类是类创建者,一类是客户程序员。
Virtual函数
        只有申明为virtual的函数才能动态绑定(late binding),缺省情况下函数不具有该特性
重载
       重载(overriding):改变已经存在的基类函数的行为
       函数重载(overload):多个函数具有相同函数名+不同参数
对象数据的存储
      第一种是存储在栈中或者静态存储区中(分配简单,速度快)
     栈是给自动变量或者局部变量使用,移动指针就能分配与释放空间
     静态存储区域:程序执行前就分配好的内存固定块
这两者速度快,灵活性差,程序员在写程序的时候就要知道对象的准确数量和生命期
编译器知道这种对象的生命周期,知道何时需要销毁它
第二种是(运行时动态管理,灵活性好)
new/delete来实现
堆上分配空间速度比栈和静态区域分配空间的速度慢很多
需要程序员自己用delete语句删除不要用的对象
分段编译:
    代码可以分成若干部分,每一部分单独编译成object文件(库也是obj文件的集合),然后由linker(连接器)link成一个完整的可执行程序,这个过程称为分段编译。
好处:每次创建测试完一段代码后,就可以作为程序组件(通常存到library中),各段程序的复杂性被隐蔽起来,支持大程序的创建
linker要解决各个模块之间变量的引用问题
定义和声明
   声明是向编译器介绍名字—-标示符,告诉编译器该函数或者变量在某个地方可以找到,它的模样是什么
定义是说“在这里建立变量”或者“在这里建立函数”,实际分配存储空间
声明可以有多个,但定义只能有一个(单一定义规则
定义也可以是声明,如对int x;如果之前没有声明,则该语句声明x同时也定义x
extern关键字表明这只是一个声明,定义在别处,如extern int x;
函数定义末尾不用分号(因为不是语句)
头文件
   对老的c程序的头文件,如stdio.h,
可以#include <stdio.h>
也可#include <cstdio>    //去掉.h,前面加c表明这是c语言程序的头文件,推荐这种
#include <iostream.h>
相当于
#include <iostream>
using namespace std;
C++中,main总是返回int类型
cin,cout
<<和>>会根据带的参数以不同的含义重载
以不同进制输出int:
cout<<dec<<5;
cout<<oct<<5;
cout<<hex<<5;
字符数组拼接
预处理器自动把两个加引号的,中间没有标点符号间隔的字符数组拼接起来,如
cout<<”aa”"bb”
“cc”
while (in>>str)         //每次从in中读入一个单词
C++的string类用来处理并隐藏对字符数组的低级操作,需要#include <string>
文件读写
需要#include <fstream>
ifstream in(“aaaa.txt”);
ofstream out(“bbb.txt”);
getline(in,str);                   //读一行(不包括换行)放入字符串str中
vector使用
#include <vector>
vector<string> v;              //定制一个放置string的vector
v.push_back(str);              //向容器v中加入一个元素
v.size();                           //容器v中元素个数
str = v[i];                        //取容器v中第i个元素