《C++ Primer》学习笔记(一)

    还是因为公司的事情,原来有一个C++写的Win32服务,提供基础数据访问的功能,现在C++程序员离职了,新的程序员没有招到,这个事情就落在我头上了,无奈只有赶鸭子上架,了解一下C++的东西,也算是一个学习吧。

    网上说《C++ Primer》这本书不错,就拿这本书入门了…..

    因为原来是做Java开发的,所以有一些基础的东西就略过了,只是把两种语言不一样的地方记录了一下。

    声明和定义:

    § 变量的定义用于为变量分配存储空间,还可以为变量制定初始值,在一个程序中,变量有且只有一个定义。

    § 变量的声明用于向程序表明变量的类型和名字。定义也是声明,因为在定义变量的时候声明了它的类型和名字。可以通过extern关键字声明变量而不定义它,不定义变量的声明包括对象名、对象类型和对象类型前的关键字extern

extern int i;   //声明,非定义
    int i;          //声明且定义

    extern声明而不是定义,也不分配存储空间,事实上,他只是说明变量定义在程序的其他地方,程序中变量可以声明多次,但只能定义一次。

    只有当声明也是定义是,声明才可以有初始化表达式,如果声明有初始化表达式,那么他可以被当做是定义,即使声明标记为extern:

extern double pi = 3.1415926;        //定义

    引用:

    § 引用相当于指向一个对象的别名,当引用初始化之后,只要引用存在,他就保持绑定到初始化时指定的对象,不可以将引用绑定到另一个对象。

    typedef:

    § typedef用来定义类型的同义词,主要用于一下三种目的:

    a)、为了隐藏特定类型的实现,强调使用类型的目的

    b)、简化复杂的类型定义,时期容易理解

    c)、允许一种类型用于多个目的,同时使得每次使用该类型的目的明确。

    typedef int score;                //定义int类型的同义词score
    score rocky_score = 60,devey_score=70;    //等同于int rocky_score=60,devey_score=70

    定义类:

    § 每一个类都定义了一个接口(头文件)和实现,两者等同于Java中的接口和实现。

    § 类的定义有class关键字和struct两种,区别在于使用class关键字定义的类中,在访问标号前的任何成员都是public的,而在struct定义的类中,在第一个访问标号前的任何成员都是隐式指定为private的。

    § 示例接口定义,需要注意的是接口定义在最后有分号结尾,同时,头文件因为会包含在多个源文件中,所以不应该含有变量或者函数的定义。

#include <string>

using namespace std;

class Sales_item
{
    public:
        //对于Sales_item的操作都定义在这里
    protected:
        //所有被保护的成员
    private:
        //私有的数据成员
        std::string isbn;
        unsigned units_sold;
        double revenue;
};

    § 避免多重包含,因为头文件会被许多源文件包含,为了多次包含不会被多次定义,引入了头文件保护符:

#ifndef SALESITEM_H 
#define SALESITEM_H 
//定义Sales_item类和方法
#endif

      检测SALESITEM_H预处理器变量是否定义,如果未定义,那么就执行定义操作,如果定义了,就跳过定义。

   

    由于时间问题,今天先看到这里,下次继续。

posted @ 2012-09-22 21:54  谭文科  阅读(508)  评论(2)    收藏  举报