C++基础

来源:互联网 发布:ubuntu ibus 系统设置 编辑:程序博客网 时间:2024/05/20 07:34

C++与C语言大部分相似,学会了C语言,几乎C++也都懂了,但还是有部分是不一样的。

先说下C语言中常用的数学函数。

1.int abs(int ):求绝对值
2.long labs(long n):求长整型数的绝对值

3.double fabs(double x):求实数的绝对值

4.double floor(double x):求不大于x的最大整数

5.double ceil(double x):求不小于x的最小整数

6.double sqart(double x):求x的平方根

7.double log10(double x):求x的常用对数

8.doule log(double x):求x的自然对数

9.double exp(doublex):求欧拉常数e的x次方

10.double pow10(double x):求10的x次方

11.double pow(double x,double y):求x的y次方

在不同类型数据的混合运算中,由系统自动实现转换。转换规则为:

1.若参与运算的数据类型不同,则先转换成同一类型,然后进行运算

2.将低类型数据转换成高类型数据后进行运算。类型的高低根据其所占空间的字节数按从小到大排序,顺序如下:

char<int<long<float<double

3.所有的浮点运算都是按照双精度进行运算的,即使仅含float型单精度量运算的表达式,也要转成double型,再进行运算

4.char型和short型参与运算时,必须先转成int型


下面是C++的内容

C++没有专门的输入/输出语句,输入/输出操作是通过输入/输出流cin和cout来实现。C++默认的标准输入设备是键盘,默认标准输出设备是显示器

C++中,类由两部分组成:声明部分+实现部分。一般格式为:
//声明部分
class<类名>
{ public:

   公有成员数据定义;

公有成员函数声明(及定义);
protect:

   保护成员数据定义;

保护数据函数声明(及定义);

private:

   私有成员数据定义;

私有成员函数声明(及定义);

};
//实现部分

<各成员函数实现>

定义成员的函数的格式为:

返回类型 类名::成员函数名(参数表)

{
     函数体;

}

成员函数的返回类型必须与类内对成员函数声明的类型保持一致。若要将定义在类外的成员函数也作为内联函数处理,则必须在成员函数定义前加关键字inline,格式如下:

inline 返回类型 类名::成员函数名(参数表)

{
     函数体;

}

一个类里面可以包括构造函数和析函数,也可以没有。构造函数即重载,可以给任意参数,但不能有返回值,当创建一个对象时,系统自动调用。能分配对象的存储空间,初始化对象的数据成员。
析函数名称为类名前+“~”,没有参数和返回值,可在程序中显示地调用(多次),也可以在对象域作用结束时系统自动调用。功能为释放对象的存储空间,做善后工作。

拷贝函数:用一个已知的构造函数初始化一个正在被创建的同类对象。格式为:

类名::类名(const 类名 & 引用对象名)

{

  //拷贝构造函数体

}

静态数据成员:类中,在数据成员定义的前面加static,该成员定义成静态数据成员。静态数据成员必须赋初值,应在类体外完成,格式为:

数据类型  类名 :: 静态数据成员名 = 初值;

类的继承与派生

派生即从已有类中产生一个新的子类。

单继承派生类的定义格式:

class <派生类名> :<继承方式> <类名>

{

//派生类成员的定义

};

多继承派生类的定义格式:

class <派生类名> :<继承方式1> <基类名>,<继承方式2> <基类名>,…

{

//派生类成员的定义

};

多继承可提高代码的重用性。

三种继承方式的区别:

在基类中的访问属性继承方式在派生类中的访问属性privatepublic不可直接访问privateprivate不可直接访问privateprotected不可直接访问publicpublicpublicpublicprivateprivatepublicprotectedprotectedprotectedpublicprotectedprotectedprivateprivateprotectedprotectedprotected

派生类构造函数声明如下:

派生类名 ;; 派生类构造函数名(参数列表):基类构造函数名1(参数表1),…,基类构造函数名n(参数表n),子对象1(子对象参数),…,子对象m(子对象参数)

{

//派生类新增成员的初始化语句;

}

派生类构造函数调用顺序如下:

1.调用基类的构造函数,调用顺序按照他们被继承时说明的顺序。

2.调用子对象的构造函数,调用顺序按照他们在类中说明的顺序。

3.执行派生类构造函数体内语句

若派生类有子对象,才执行2,否则直接执行3.

多继承下的派生类构造函数与单继承的派生类的构造方法相似。多个基类构造函数的执行顺序取决于定义派生类时所指定的各个基类的顺序,而与派生类构造函数的成员初始化列表中给定的纪录类顺序无关。

派生类的析函数执行顺序与构造函数执行顺序刚好相反。