《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预处理器变量是否定义,如果未定义,那么就执行定义操作,如果定义了,就跳过定义。
由于时间问题,今天先看到这里,下次继续。

浙公网安备 33010602011771号