² class的定义分为两部分,分别写于不同文件,其中之一是“头文件”,用来声明class所提供的各种操作行为,另一个是程序代码文件,包含这些操作行为的实现内容。
² 在C++中,main()返回0表示程序执行成功
² 关于usingnamespace std;语句
std是标准程序库所在的命名空间的名称。标准程序库所提供的任何事物都被封装在命名空间中。命名空间可以避免和应用程序之间发生命名冲突的问题。、
² 构造函数法:
定义一个复数:complex<double> purei(0,7);
² const
C++中需要一些表示常量值的对象,此对象的内容在程序执行过程中不应有所更动[51] 。
² 运算符的优先级:
逻辑运算符NOT、!
算数运算符(*,/,%)
算数运算符(+,-)
相对关联运算符(>,<,<=,>=)
相对关联运算符(==,!=)
逻辑运算符AND
逻辑运算符OR
赋值运算符
² Arrays与Vector的定义与初始化
定义Arrays
const int seq_size = 18;
int pell_seq[seq_size];
定义Vector
#include <vector>
vector<int> pell_seq(seq_size)
初始化Array的方式与数组相同
初始化Vector的方式:(利用一个已初始化德Array来初始化Vector)
int elem_vals [ seq_size ] = {
1, 2, 3, 3, 4, 7, 2, 5, 12, 3, 6, 10, 4, 9, 16, 5, 12,22
};
vector<int> elem_seq( elem_vals,elem_vales+seq_size);
² 指针
int *pi = &ival;
pi为int型的指针,语句将pi的初始值设为ival所在的内存地址
pi等于操控“指针对象”本身,而*pi等于操控pi所指的对象
一个未指定任何对象的指针,其内含地址为0,称之为NULL指针,任何指针都可以被初始化,或是令其值为0。
为防止对null指针进行提领操作,采用if( pi && … )的表达式来判断,而欲检验某指针是否为NULL,通常使用逻辑运算符NOT:if( !pi )
² 伪随机函数产生器rand(),srand()
srand()的参数是随机数产生器种子。每次调用rand(),都会返回一个介于0和“int所能表达的最大整数”之间的一个整数。如果将随机数产生器种子设为5,我们可以将随机数的返回值限定在0~5之间。这两个函数的声明位于cstdlib头文件中。
² 文件的读写操作
欲对文件进行读写操作,首先需要含入fstream头文件:
#include <fstream>
//以输出模式开启seq_data.txt
ofstream outfile(“seq_data.txt”);
如果指定的文件并不存在,就会自动产生一个新文件并作为输出之用;如果指定的文件已经存在,这个文件会被开启作为输出只用,而文件中原有的数据会被丢弃。
如果文件已经存在,但我们不希望覆盖原有的内容,就要采用追加模式来开启文件:
ofstream outfile( “seq_data.txt”, ios_base::app );
文件有可能开启失败,所以最好确定文件是否开启成功:
if (!outfile)
//因为某种原因,文件无法开启
cerr<< “Oops! Unable to save session data! \n”;
else
// ok :outfile开启成功,接下来将数据写入
outfile<< user_name << ‘ ‘
<< num_tries << ‘ ‘
<< num_right << endl;
endl是事先定义好的操控器,由iostream library提供。endl会插入一个换行字符,并清除输出缓冲区的内容。
如果要开启一个可读取的文件,我们可以定义一个ifstream对象,并将文件名传入。如果文件未能开启成功,ifstream对象会被核定为false。如果成功,该文件的写入位置会被定义为起始处。
ifstream infile( “seq_data.txt” );
int num_tries = 0;
int num_cor = 0;
if ( ! infile ){
//由于某种原因,文件无法开启……
}
else{
stringname;
int nt;
int nc;
while(infile >> name )
//一旦读到文件尾端,读入的class object会被定义为false,作为结束条件。
{
infile>> nt >> nc;
if( name == usr_name )
{
…
}
}
}
要想同时读写一个文件,需要定义发fstream对象,并以追加模式开启:
fstream iofile ( “seq_data.txt”,ios_base::in|ios_base::app );
此时,文件位置会位于尾端,我们可以采用 iofile.seekg(0);将文件位置重置到起始处。