面向对象:
对象:就是具有某类事务相同特征的 (数据和操作数据的方法)的集合
面向对象(Object Oriented) Object Oriented Programming,简称OOP,是一种程序设计思想。把(对象)作为程序的基本单元,一个对象包含了(数据和操作数据的方法)例如People{name,age,sex,function getSex(){ }}是一个people对象 类的(实例化)就是对象
⑴对象。 :对象是某类事物 抽象出来后 数据和方法的结合体,类的(实例化)
在面向对象程序设计中,对象所指的是计算机系统中的某一个成分。对象包含两个含义,其中一个是**(数据),另外一个是(操作数据的方法)。对象则是数据和方法的结合体。
它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
⑵对象的状态和行为。用数据描述状态,用操作数据的方法**描述行为。
对象具有属性,一个对象用数据值来描述它的属性。
对象还有行为,用于改变对象的状态,对象及其操作就是对象的行为。
对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中
⑴.抽象 把某类事物具有相同的特性 { (数据)和(操作数据的方法) }抽离出来,就是抽象
抽某类事务出具有相同特性 { 属性(数据元素)和行为(功能) } 的对象,形成类
抽象级别:抽象主要包括 过程抽象 和 数据抽象
⑶类。
具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的(实例化)就是对象,也可以说类的实例是对象(实例化一个对象),类实际上就是一种数据类型。
面向过程
把(计算机程序)视为一系列的命令集合,程序的基本单元,即一组函数的顺序执行
对类的概念
命令符:
* 取值运算符 & 寻址运算符 :: 域操作符(作用域操作符) -> 访问符号
- int p = &x; 对p赋值 操作的是指针变量的值所对应的地址
- :: 在类外部声明成员函数。void Point::Area(){};
调用全局函数;
表示引用成员函数变量及作用域,作用域成员运算符 例: System::Math::Sqrt() 相当于System.Math.Sqrt()
** :: //作用域 **
#include
using namespace std;
int avar=10; //全局变量avar
int main()
{
int avar=20; //局部变量avar
cout<<"avar is: "<<avar<<endl; // avar 访问局部变量
avar=25; //1 //修改局部变量
cout<<"avar is: "<<avar<<endl;
cout<<"avar is: "<<::avar<<endl; // ::ava 访问全局变量
::avar=30; //2 //修改全局变量
cout<<"avar is: "<<::avar<<endl;
return 0;
调用类的静态方法: 如:CDisplay::display(…)
** -> ** 访问符号 用于声明一个对象类型的指针 指向一个new 出来的这个对象
例:
Class Tv{
public int type;
public void changeVo(){} //对象就是类里面的变量
int math(void){
Tv *p = new Tv();
p->type = 0; //-> 访问符号
p ->changeVo()
}
}
int a=3; int &b=a; //b是a的引用(a引用了b),引用必经初始化,一旦初始化就不能改为指向其他对象
b = 10; 对b的操作也修改了a,对a的操作也修改了b。
- boolalpha 便是Cout<<输出的布尔型true/false 而不是0/1
count.width(n) n为整形,表示输出的数值的多少位
位运算符
赋值运算符
杂项运算符
C++ 数学运算
C++ 数据类型
C++ 日期 & 时间
有四个与时间相关的类型:clock_t、time_t、size_t 和 tm。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。
结构类型 tm 把日期和时间以 C 结构的形式保存,tm 结构的定义如下:
/* 输入日期判断是周几 /
例1:
#include <stdio.h> / printf, scanf /
#include <time.h> / time_t, struct tm, time, mktime /
int main ()
{
time_t rawtime;
struct tm * timeinfo;
int year, month ,day;
const char * weekday[] = { “周日”, “周一”,“周二”, “周三”,“周四”, “周五”, “周六”};
/ 用户输入日期 /
printf (“年: “); fflush(stdout); scanf (”%d”,&year);
printf (“月: “); fflush(stdout); scanf (”%d”,&month);
printf (“日: “); fflush(stdout); scanf (”%d”,&day);
/ 获取当前时间信息,并修改用户输入的输入信息 /
time ( &rawtime );
timeinfo = localtime ( &rawtime );
timeinfo->tm_year = year - 1900;
timeinfo->tm_mon = month - 1;
timeinfo->tm_mday = day;
/ 调用 mktime: timeinfo->tm_wday */
mktime ( timeinfo );
printf (“那一天是:%s\n”, weekday[timeinfo->tm_wday]);
return 0;
让我们编译并运行上面的程序,这将产生以下结果:
年: 2018
月: 7
日: 26
那一天是:周四
例2:
#include
#include /* time_t, struct tm, time, mktime */
using namespace std;
int main( )
{
// 基于当前系统的当前日期/时间
time_t now = time(0);
cout << “1970 到目前经过秒数:” << now << endl;
tm *ltm = localtime(&now);
// 输出 tm 结构的各个组成部分
cout << "年: "<< 1900 + ltm->tm_year << endl;
cout << "月: "<< 1 + ltm->tm_mon<< endl;
cout << "日: "<< ltm->tm_mday << endl;
cout << "时间: "<< ltm->tm_hour << “:”;
cout << ltm->tm_min << “:”;
cout << ltm->tm_sec << endl;
}
当上面的代码被编译和执行时,它会产生下列结果:
1970 到目前时间:1503564157
年: 2017
月: 8
日: 24
时间: 16:42:37
C++ 随机数
随机数生成器有两个相关的函数。一个是 rand(),该函数只返回一个伪随机数。生成随机数之前必须先调用 srand() 函数。
j= rand();
cout <<"随机数: " << j << endl;
**
整数常量
**
整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。
整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,也可以是小写,U 和 L 的顺序任意。
头文件**#include **
头文件就是将别的文件里的代码插入到编程代码中的一种方式
iostream.h:用于控制台输入输出头文件。 //io stream的简写
fstream.h:用于文件操作的头文件。 //file stream的简写
complex.h:用于复数计算的头文件。
#include
#include //
命名空间 **using namespace std;**表示使用C++ 标准库
命名空间:实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。
如: namespace ns1 //指定命名中间nsl
{ int a;
double b; }
na