学堂在线00740043X_2015_T2 C++语言程序设计基

2018-02-21  本文已影响0人  HM955

负数补码 = 反码 + 1
正数补码 = 原码

基本数据类型:
(整数;实数;字符;布尔)类型
(signed/unsigned) signed char
<= (unsigned) short int
<= (unsigned) int
<= (unsigned) long int
<= long long int

整数常量:

初始化:

int a = 0
int a(0)
int a = {0}
int a{0}

其中使用大括号的初始化方式称为列表初始化,列表初始化时不允许信息的丢失。例如使用double值初始化int变量,就会造成数据的丢失。

逗号运算符:
表达式1,表达式2
求解顺序及结果:
先求解表达式1,再求解表达式2
最终结果为表达式2的值
例:
a = 3 * 5, a * 4最终结果为60

条件运算:
表达式1?表达式2:表达式3
条件表达式的最终类型为2和3中较高的类型

sizeof运算符:
sizeof(类型名) 或 sizeof 表达式

位运算符:

位运算:

隐含转换就时把低类型数据转换为高类型数据

显式转换:
类型说明符(表达式)
(类型说明符)表达式
类型转换操作符<类型说明符>(表达式)
类型转换操作符:const_cast、dynamic_cast、reinterpret_cast、static_cast
例:int(z),(int)z,static_cast<int>(z)三种完全等价

其他控制语句

类型别名:为已有类型另外命名

typedef double Area,Volume;
typedef int Natural;
Natural i1,i2;
Area a;
Volume v;
using Area = double
using Volume = double

不限定作用域枚举类型说明:

auto类型与decltype类型

struct结构的作用是把一组相互关联的数据整合在一起

函数定义的语法形式:
类型标识符 函数名(形式参数表)
{
语句序列
}
函数原型:类型标识符 被调用函数名(含类型说明的形参表)
递归调用:函数直接或间接调用自身
回文:各位数字左右对称的整数

rand函数:
函数原型:int rand(void);
所需头文件:<cstdlib>
功能和返回值:求出并返回一个伪随机数

srand函数:
原型:void srand(unsigned int seed)
参数:seed产生随机数的种子
所需头文件:<cstdlib>
功能:为使rand()产生一序列伪随机数而设置起始点。使用1作为seed参数可以重新初化rand()

用递归法计算从n个人中选k个人组成一个委员会的不同组合数
分析

将n个盘子从A针移到C针可以分解为三个步骤:

函数的参数传递:

引用类型:

int i,j;
int &ri = i;//定义int引用ri,并初始化为变量i的引用
j = 10;
ri = j;//相当于i = j

内联函数:
通常的做法是省略原型,将整个定义(即函数头和所有函数代码)放在本应提供原型的地方

默认参数值:

int add(int x = 5,int y = 6) {
     return x + y;
}
int main() {
     add(10,20);  //10+20
     add(10);     //10+6
     add();       //5+6
}

默认参数值的说明次序:

int add(int x,int y = 5,int z = 6);//正确
int add(int x = 1,int y = 5,int z);//错误
int add(int x = 1,int y,int z = 6);//错误

默认参数值与函数的调用位置:

int add(int x = 5,int y = 6);
//原型声明在前
int main(){
  add();
}
int add(int x,int y){
//此处不能再指定默认值
  return x + y;
}
int add(int x = 5, int y = 6){
//只有定义,没有原型声明
  return x + y;
}
int main(){
  add();
}

函数重载的概念:

注意事项:

角度值转化为弧度 :
弧度 = 角度值*PI / 180

类与对象

面向对象程序设计的基本特点:抽象、封装、继承、多态
类定义的语法形式

class 类名称
{
  public:
            公有成员(外部接口)
  private:
             私有成员
  protected:
              保护型成员
};

构造函数的作用

构造函数的调用时机

类内初始值
private:
int hour = 0,minute = 0,second = 0;

私有类型成员

类的成员函数

内联成员函数

默认构造函数

Clock();
Clock(int newH=0,int newM=0,int newS=0);

隐含生成的构造函数
如果程序中未定义构造函数,编译器将自动生成一个默认构造函数

"=defalut"

class Clock{
public:
Clock() = default;//指示编译器提供默认构造函数
Clock(int newH, int newM, int newS); //构造函数
private:
int hour,minute,second;
}

数组:数组是一种数据形式,能够存储多个同类型的值。
数组的初始化规则:只有定义数组时才能使用初始化,此后就不能使用了,也不能将一个数组付给另一个数组:

int cards[4] = {3, 6, 8, 10}; //okay
int hand[4]; //okay
hand[4] = {5, 6, 7, 9}; //not allowed
hand = cards; //not allowed

然而,可以用下标分别给数组中的元素赋值。

常量表达式是指值不会改变并且在编译过程就能得到计算结果的表达式。显然,字面值属于常量表达式,用常量表达式初始化的const对象也是常量表达式。
一个对象(或表达式)是不是常量表达式由它的数据类型和初始值共同决定
C++11新标准规定,允许将变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式。声明为constexpr的变量一定是一个常量,而且必须用常量表达式初始化

上一篇 下一篇

猜你喜欢

热点阅读