C++程序定义为对象的集合,这些对象通过调用彼此的方法进行交互。具体程序中设计类、对象、方法和及时变量定义如下:
- 类 - 可以定义为描述对象的行为/状态的模板或者蓝图,实体或者虚拟世界的一个抽象。
- 对象 - 对象是类的实例化,具有状态和某种行为。例如:一匹马的状态包含毛色、名称、品种,行为包含吃,叫。
- 方法 - 一个方法表示一种行为。一个类包含恒多种方法,可以在方法中写入逻辑,进行数据操作和逻辑判断,完成某一个较为完整的行为动作。
- 及时变量 - 类将事物进行定量化抽离,对象中具体的一个个实际值表达了这个对象独特的价值支出或者这个对象的一种状态,是对具体对象的一个数值描述。
1. C++文件结构
C++可执行文件包含.h头文件的声明定义和.cpp文件具体行为的赋值和动作的实现两部分内容,当然中间可能还会连接到其他一些库文件或者使用标准库中定义好的结构文件。
1.1 C++头文件
头文件中.h或者.hpp后缀文件命令,对于包含的标准库头文件直接去掉.h后缀。
#include <iostream.h》 -> #include <iostream>
对于头文件为了避免重复包含问题,可以通过如下两种方式任意一种进行规避。第一种是def,第二种是pragma方式。
complex.h
#ifndef __COMPLEX_H__
#define __COMPLEX_H__
class complex; 前置声明
complex& __doapl(complex* this, const comple& r);
class complex{ 具体类声明
...
};
complex::function ... 类行为定义
#endif
或者
#pragram once
文件内部头文件的实现首先通过前置方式声明了一个类,之后是一个通用的函数类型,然后跟着具体的类声明,最后实现类的行为函数定义实现。
1.2 C++实现文件
template< typename T>
class complex // class head
{ // class body
public:
complex (T r = 0, T i = 0): re (r), im (i){}
complex& operator += (const conplex&);
T real() const { return re;}
T imag() const { return im;}
private:
T re, im;
friend complex& __doapl (complex*, const complex&);
};
C++语句独立可以使用分号的完成一个语句的结束,这个标明一个语句的结束。对于C++语句块,通过{}进行分隔,分隔开来的语句段内部的变量是只能在语句段内部使用,不能在语句端外部使用。C++具体实现文件通过一些列行为动作的语句块构成,每个语句块独立完成一项基本功能。
在语句实现内部的空格分隔语句的各个部分,让编译器能够识别语句中某个元素具体再哪里结束,下一个元素又是从哪里开始的。例如,int age;这个语句。int和age之间至少需要有一个空格符(通常是一个空白符),这样编译器才能够识别他们。当然,对于fruit = apples + aranges;这样的语句中间的空格并非必须。但是,为了增强可读性,可以在代码编程是适当加入一些空格。
2. C++标识符
2.1. 用户定义标识符
C++表示符是用来表示变量、函数、类、模块,或者其他用户定义的项目的名称。一个标识符以字母a-z或A-Z或下划线_开始,之后零个或者多个字母下划线和数字(0-9)。在C++表示符中不允许出现标点符号和特殊字符。任何语言标准都会规定系统关键保留字,
2.2. 保留标识符
对于C++而言保留的关键标识符常见的有:
asm | else | new | this |
auto | enum | operator | throw |
bool | explicit | private | true |
break | export | protected | try |
case | extern | public | typedef |
catch | false | register | typeid |
char | float | reinterpret_cast | typename |
class | for | return | union |
const | friend | short | unsigned |
const_cast | goto | signed | using |
continue | if | sizeof | virtual |
default | inline | static | void |
delete | int | static_cast | volatile |
do | long | struct | wchar_t |
double | mutable | switch | while |
dynamic_cast | namespace | template |
2.3 三字符组
三字符组就是用于表示另一个字符的三个字符序列,又称为三字符序列。三字符序列总是以两个问号开头。三字符序列不太常见,但 C++ 标准允许把某些字符指定为三字符序列。以前为了表示键盘上没有的字符,这是必不可少的一种方法。
三字符序列可以出现在任何地方,包括字符串、字符序列、注释和预处理指令。
下面列出了最常用的三字符序列:
三字符组 | 替换 |
---|---|
??= | # |
??/ | \ |
??' | ^ |
??( | [ |
??) | ] |
??! | | |
??< | { |
??> | } |
??- | ~ |
2.4 注释符
程序的注释是解释性语句,您可以在 C++ 代码中包含注释,这将提高源代码的可读性。所有的编程语言都允许某种形式的注释。C++ 支持单行注释和多行注释。注释中的所有字符会被 C++ 编译器忽略。C++ 注释一般有两种:
- // - 一般用于单行注释
- /* ... */ 一般用于多行注释
需要注意的一点是/* ... */注释符是不可以嵌套使用的,在代码注释的时候会出现注释块增加嵌套的情况时,使用起来会有一些别扭。
对于嵌套的问题,一般在代码中使用条件编译来完成大段代码或者函数的注释。#if 0 ... #endif是常用的完成代码条件注释的方法。
当然条件编译真正的用途应该是如下,在condition条件编译器中定义时,执行code1段代码,否则执行code2段代码。
#if condition
code1
#else
code2
#endif