寒假学习

C++寒假学习
大致内容

1.数据类型(基本类型:[整型,浮点型,字符型 char,逻辑型 bool,空类型 void],
构造类型:[数组,结构体,共用体,枚举,类],指针类型,引用类型)
2.运算符及优先级(与C相同),顺序结构
选择结构,循环结构,函数调用等(下面为对2的应用)

#include “iostream”
using namespace std;(使用标准命名空间)

int main()
{
char op;
float num1, num2;

cout << (流插入运算符C++将数据看作流,名为数据流,流插入运算符即将数据流插入到屏幕中)"输入运算符:+、-、*、/ : ";cout ,cin 输入输出的数据暂放到缓冲区,不会直接输入输出。
格式控制在cout ,cin中可使用格式控制符需导入<iomanip>[具体内容](https://blog.csdn.net/darkxiaoming/article/details/70495721)
cin >> (流提取运算符,将输入的数据提取到缓冲区)op;

cout << "输入两个数: ";
cin >> num1 >> num2;

switch(op)
{
    case '+':
        cout << num1+num2;
        break;

    case '-':
        cout << num1-num2;
        break;

    case '*':
        cout << num1*num2;
        break;

    case '/':
        cout << num1/num2;
        break;

    default:
        // 如果运算符不是 +, -, * 或 /, 提示错误信息
        cout << "Error!  请输入正确运算符。";
        break;
}

return 0;}

3.命名空间和作用域以及生命周期。
大型应用程序经常使用不同的开发库,几乎不可避免会使 用相同的名字,也就是说一个库中定义的名字可能与其他库中的名 字相同而产生冲突,使得程序员不能组合各自独立的开发库到一个 程序中。
命名空间是区分不同作用域变量的一种形式。
作用域是程序中的一段区域。在同一个作用域上,C++程序中每个 名字都与唯一的实体对应;如果在不同的作用域上,程序中可以多 次使用同一个名字,对应不同作用域中的不同实体。(文件作用域,函数作用域,块作用域,类型声明作用域,函数原型作用域)
4. 数组,字符串(头文件中string为对象,与C字符不同。特点:
1.C++字符串对象不需要NULL字符结尾。1.C++字符串对象不需要NULL字符结尾。
与变量类似,直接使用string对象名就表示它的引用
2.与变量类似,直接使用string对象名就表示它的引用
str1 = “Pascal”; //(注释)使用string对象
3.与C不同的是不用puts,gets,直接cin ,cout 4.str1="Java"; //C风格字符串可以直接赋给string str1.c_str(); //string转换为C风格字符串,返回char指针 str1.copy(S1,n,pos); //把str1中从pos开始的n个字符复制到S1字符数组. 4.str1="12" , str2="AB" , str3="CD"; str1 = str2 + str3; //str1结果为ABCD str1 = str1 + "PHP"; //str1结果为12PHP str1 += str3; //str1结果为12CD. str1="ABC" , str1="XYZ"; str1 > str2; //结果为假 str1 == str2; //结果为假 str1 == "ABC"; //结果为真)指针(指针变量,指针数组,数组指针,结构体指针,指针作为函数参数,指针作为返回值等),引用(数据地址的别名,引用作为函数参数,和返回值)
实例:1.1 #include <iostream> 2 using namespace std; 3 void swap(int *p1, int *p2) 4 { 5 int t; 6 t=*p1 , *p1=*p2, *p2=t; //交换*p1和*p2 7 } 8 int main() 9 { 10 int a, b; 11 cin>>a>>b; //输入 12 if (a>b) swap(&a, &b); 13 cout<<"min="<<a<<",max="<<b; //输出 14 return 0; 15 }(交换两变量的值)
2.`1 //程序① 传递对象本身
2 #include
3 using namespace std;
4 //对象作为函数形参
5 void swap(int a,int b)
6 { int t;
7
t=a, a=b, b=t;
8 }
9 int main()
10
{ int x=10, y=20;
11 swap(x,y);
12
13 return 0;
14 }
1 //程序② 传递对象的指针
2 #include
3 using namespace std;
4 //指针作为函数形参
5 void swap(int *a,int *b)
6 { int t;
7
t=*a, *a=*b, *b=t;
8 }
9 int main()
10 { int x=10, y=20;
11 swap(&x,&y);
12
13 return 0;
14 }
1 //程序③ 传递对象的引用
2 #include
3 using namespace std;
4 //引用作为函数形参
5 void swap(int &a,int &b)
6 { int t;
7
t=a, a=b, b=t;
8 }
9 int main()
10 { int x=10, y=20;
11 swap(x,y); 12
13 return 0; 14 }
动态分配内存在这里插入图片描述链表是一种存储空间能动态进行增长或缩小的数据结构。
5.结构体(同C语言),共用体,枚举,类。
共用体(union)在这里插入图片描述
结构体与共用体的内存形式是截然不同的。共用体内存长度是所有 成员内存长度的最大值,结构体内存长度是所有成员内存长度之和。 可以用sizeof取它们的内存长度进行比较。在这里插入图片描述

枚举(多个枚举常量构成的类型)
当给枚举类型对象赋值时,若是除枚举值之外的其他值,编译器会 给出错误信息,这样就能在编译阶段帮助程序员发现潜在的取值超 出规定范围的错误。例如: enum COLORS color; color=101; //错误,不能类型转换 color=(COLORS)101; //正确,但结果没有定义 类: https://www.cnblogs.com/xiongxuanwen/p/4290086.html 实例#include 2 #include <string.h> 3 using namespace std; 4 class A{ 5 public: 6 7 8 9
return w*h; }
10 11 12 13
void setWH(int x,int y) {
w=x,h=y; } 19
int getArea() const14 15
A(int x,int y){w=x,h=y;} A(){}
16 private: 17
int w,h;
18 }; 19 int main() 20 { 21 22 23
24 25 26
27 } 20
A a;//普通对象可以不初始化 a.setWH(3,9);
A const b;//错误,常对象必须声明的同时初始化,正确的是: A const b(3,6);
b.setWH(3,7);//错误,常对象不能调用非常成员函数 cout<<a.getArea()<<endl<<b.getArea()<<endl;;
return 0;

6.多态(多态是指同样的消息被不同类型的对象接收时导致不同的行为。所 谓消息是指对类成员函数的调用,不同的行为是指不同的实现,也 就是调用了不同的函数。强制多态 强制多态也称类型转换。 如C++定义了基本数据类型之间的转换规则,即: char→short→int→unsigned→long→unsigned long→float→double→long double。
同时,可以在表达式中使用3种强制类型转换表达式: ①static_cast(E);②T(E);③(T)E,其中E代表运算表达式,T代 表一个类型表达式。上述任意一种都可改变编译器所使用的规则, 以便按自己的意愿进行所需的类型强制。
但是强制多态使类型检查复杂化,尤其在允许重载的情况下,导致 无法消解的二义性。)
总结:这次对C++学习是基于定义的掌握了大部分C++规则等。但还不熟练。以此篇来回顾之前所学。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值