c++(库存)

  1. 转义字符

  1. 字符串

  1. bool类型

  1. 取模运算

两个小数不能做取模运算

  1. 三目运算符

(表达式1?表达式2:表达式3);

可对预算结果进行赋值 例:(表达式1?表达式2:表达式3)=100;

  1. switch语句:

每一个分支后要加break表示退出当前分支,否则会继续执行下一个语句;

若剩下分支归一类则可以写为default:

  1. 随机数猜测

  1. do...while语句

总结:与while循环区别在于,do...while先执行一次循环语句,再判断循环条件

  1. 乘法口诀表

  1. const修饰指针

(1)常量指针:const int *p=&a;

特点:指针的指向(p=&b)可以修改,指针指向的值(*p=20)不可以修改

(2)指针常量:int * const p=&a;

特点:指针的指向不可以修改,指针指向的值可以修改

(3)const修饰指针和常量:const int *const p=&a;

  1. 结构体中const使用

const放在传址前面防止数据被误操作

  1. 封装

封装的意义:(1)将属性和行为作为一个整体,表现生活中的事物(2)将属性和行为加以权限控制


内存分区模型(1和2在程序运行前 3和4在程序运行后)

  1. 代码区:存放函数体的二进制代码,由操作系统进行管理的

  1. 全局区:存放全局变量和静态变量(static)以及常量(字符串常量和const修饰的全局常量)

不在全局区:局部变量和const修饰的局部变量(常量)

  1. 栈区:(数据由编译器管理开辟和释放)

注意:不要返回局部变量的地址 因为局部变量在函数执行完就销毁了

栈区存放局部变量和形参数据

  1. 堆区:由程序员分配释放,若程序员不释放,程序结束时由操作系统回收

用new关键字将数据存放在堆区 int *p=new int(10);

new返回的是该数据类型的指针*p 释放delete p。

在堆区创建一个数组时 int *arr=new int[10],返回数组首地址,释放时写为delete[] arr(加中括号)。


C++引用:

  1. 起别名: 数据类型 &别名=原名

例:int a=10;int &b=a;

2.注意事项:

  1. 引用传递函数形参时实参也会改变

  1. 引用函数做返回值:如果函数的返回值是引用,这个函数调用可以作为左值(不要返回局部变量的引用)

  1. 本质:引用的本质在c++内部实现是一个指针常量。

5.const的使用

  1. 函数的默认参数

形参可以有默认参数,传参的值的优先级更高。

如果参数声明有默认参数,函数实现就不能有默认参数

  1. 函数重载的条件

1)同一个作用域下

2)函数名称相同

3)函数参数类型不同,或者个数不同,或者顺序不同

注意事项:函数的返回值不可以作为函数重载的条件,引用可以作为函数重载的条件

7.字符串

C++ string详解,C++字符串详解 (biancheng.net)

8.static_cast

double a = 1.999;

int b = static_cast<double>(a); //相当于a = b ;

9.内联函数 (C++) | Microsoft Learn

10.输出结果保留小数

(100条消息) C / C++ 保留两位小数(setprecision(n)的一些用法总结)_c++保留小数_Ann's Blog的博客-CSDN博客

#include <iomanip> //不要忘了头文件

//第三种写法

cout<<fixed<<setprecision(2);

11.unsigned long long类型是目前C语言中精度最高的数据类型,可以用来表示20以内的阶乘数据,20以外的自测。

  1. 类对象

类对象里面的成员函数可以直接调用私有数据成员,不需要定义形参。

例:

8.类class和结构体struct的区别:

类的默认权限为私有,结构体的默认权限是公有


1.构造函数里面不要重新定义!!!

2.静态成员一定要在类外面初始化!!//float Student::totalDeposit = 0;//float Student::totalPromotion = 0;

调用静态数据成员的函数也必须是静态成员函数!!

static float getTotalDeposit() {

return totalDeposit;

}

static float getTotalPromotion() {

return totalPromotion;

}

3.new的形式:Point *a=new Point[3];

4.释放此空间:delete []a;

5.getline(cin, s, '#');

6.派生类对象对基类进行构造函数时,需要用初始化列表,例如:Person(id, name, sex, age) 赋值的右边要用形参

并且 在输出的时候引用基类的输出函数用此方法:Person::show();

7.前置单目运算符,重载函数没有形参,对于后置单目运算符,重载函数需要有一个整型形参。

8.类的私有成员要一个一个定义,不要偷懒!!!

9.运算符重载的时候要注意函数返回值类型!! 如果在运算符的重载函数中需要操作某类对象的私有成员,可以将此函数声明为该类的友元函数。

前置--的时候没有形参 要有取址符 || 后置有引用到前置函数|| 输出输入时 形参和函数都要有取址符 记得要有返回值 ou和in

10.虚函数的调用时要用指针:void fun(Point* c) { c->show(); }

11.要注意参数类型转换及输出格式

12.islower()判断是否为小写字母 isupper()判断是否为大写字母 toupper()转换为大写字母 tolower()转换为小写字母 isdigit判断是否为数字

https://blog.csdn.net/qq_37007384/article/details/95601222

9.#include<iostream>

using namespace std;

class Point {

public:

Point(int x = 0, int y = 0, int z = 0) {

X = x;

Y = y;

Z = z;

}

~Point() {}

Point operator + (const Point& p2) {//重载+

return Point(X + p2.X, Y + p2.Y, Z + p2.Z);

}

Point& operator --() {//前置--

--X;

--Y;

--Z;

return *this;

}

bool operator ==(const Point& p2) {//前置==

return (X == p2.X && Y == p2.Y && Z == p2.Z);

}

friend Point operator --(Point& c, int) {//后置--

Point p = c;

--c;//引用前置--

return p;

}

friend Point operator +=(Point& c1, Point& c2) {//后置+=

c1.X += c2.X;

c1.Y += c2.Y;

c1.Z += c2.Z;

return c1;

}

friend istream& operator >>(istream& in, Point& c) {//输入

in >> c.X >> c.Y >> c.Z;

return in;

}

friend ostream& operator <<(ostream& out, Point& c) {//输出

out << "(" << c.X << "," << c.Y << "," << c.Z << ")" << endl;

return out;

}

private:

int X; int Y; int Z;

};

int main()

{

Point c1(1, 2, 3);

Point c2(2, 3, 4);

Point c3;

c3 = c1 + c2;

cout << "c1+c2=" << c3 << endl;

--c3;

cout << "c3=" << c3 << endl;

Point c4;

c4=c3--;

cout << "c4=c3--==" << c4 << endl;

cout << "c3=" << c3 << endl;

int x=(c2 == c3);

cout << "c2==c3?" << (x?"相等":"不相等") << endl;

c1 += c3;

cout << "c1+c3=" << c1 << endl;

cin >> c1;

cout << c1 << endl;

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值