代码1:转义字符

点击查看代码
#include<iostream>
using namespace std;
void test01()//换行
{
cout << "Hello World" << endl;
//等价于cout << "Hello World\n" << endl;
}
void test02()//反斜杠
{
cout<<"\\"<<endl;
//打入两个反斜杠才输出一个反斜杠
}
void test03()//水平制表符\t
{
//cout << "1111aaa\tHelloWorld" << endl;
//\t占8个空格 主要是为了整齐的输出其后面的内容
cout << "111aaa\thelloworld" << endl;
cout << "111a\thelloworld" << endl;
cout << "111aa\thelloworld" << endl;
//
cout << "111aaa helloworld" << endl;
cout << "111a helloworld" << endl;
cout << "111aa helloworld" << endl;
//没有\t并不会自动对齐
}
int main()
{
test03();
system("pause");
return 0;
}

代码2:字符串类型

点击查看代码
//字符串型
//C语言的形式:char 变量名字[] = "字符串值";
//C++的形式:string 变量名字 = "字符串值"; #include<iostream>
using namespace std;
//#include<string>
int main()
{
char str[] = "Hello World";
cout << str << endl;
string arr = "Hello World";
//包含头文件
cout << arr << endl;
return 0;
}

代码3:布尔类型

点击查看代码

<details>
<summary>点击查看代码</summary>

include

using namespace std;

int main()

{

bool flag = true;

cout << flag << endl;

//结果为1

flag = false;

cout << flag << endl;

//结果为0

cout << sizeof(bool) << endl;

//bool所占内存空间:1个字节大小

return 0;

}

</details>

//布尔类型只要是非0的值都代表是真

代码4:取模运算

//两个整数相除结果依然为整数

//两个小数是可以相除的

//运算结果也可以为小数

//两个数相除 除数不可以为0

点击查看代码
#include<iostream>
using namespace std; int main()
{
//取模
cout << 10 % 20 << endl;//10
cout << 10 % 3 << endl;//1
cout << 10 % 0 << endl;//10不可以除以0
//cout << 1.1 % 2.1 << endl;//两个小数是不可以进行取模运算的 return 0;
}

//只有整型变量才可以进行取模运算

代码5:随机数

点击查看代码
#include<iostream>
using namespace std;
//#include<ctime>
int main()
{
//添加随机数种子
//利用当前系统的时间去生成随机数 防止每一次随机数都一样
srand((unsigned int)time(NULL));
int num1 = rand() % 100;//产生0到99
int num2 = rand() % 100 + 1;//产生1到100
int num3 = 0;
for (int i = 1;1; i++)
{
cin >> num3;
if (num3 > num1)
{
cout << "猜大了" << endl;
}
else if (num3 < num1)
{
cout << "猜小了" << endl;
}
else
{
cout << "猜对了" << endl;
break;
}
}
return 0;
}

// srand((unsigned int)time(NULL));随机数种子

代码6:成员变量和成员函数分开存储

只有非静态的成员变量才属于类的对象上

点击查看代码
#include<iostream>
using namespace std;
//成员变量 和 成员函数 是分开存储的
class Person
{
int m_A;//非静态的成员变量 - 属于类的对象上
static int m_B;//静态成员变量 - 不属于类的对象上
void func(){}//非静态的成员函数 - 不属于类的对象上
static void funcc(){} //静态成员函数 - 不属于类的对象上
};
int Person::m_B = 190;
void test01()
{
Person p1;
//空对象 占用的内存空间为:1
cout << sizeof(p1) << endl;//1
//每个空对象也应该有一个独一无二的内存空间地址
}
void test02()
{
Person p1;
cout << sizeof(p1) << endl;//4
}
int main()
{
//只有非静态的成员变量才属于类的对象上
test02();
return 0;
}

代码7:this指针

:可以解决名称冲突

可以返回对象本身使用*this

点击查看代码
#include<iostream>
using namespace std;
class Person
{
public:
Person(int age)
{
//this指针
//this指针指向 被调用的成员函数 所属的对象 this->age = age;
}
//Person PersonAddAge(Person& p) 以值的方式去返回
Person& PersonAddAge(Person& p)
{
this->age += p.age;
//this指向的就是p2的指针 那么*this就是指向的p2这个对象本体
return *this;
//返回本体需要使用引用的方式
}
int age;
};
//解决名称冲突
void test01()
{
Person p1(190);
cout << p1.age << endl;
}
//返回对象本身使用*this void test02()
{
Person p1(190);
Person p2(191);
//p2.PersonAddAge(p1);
Person p3(1);
p2.PersonAddAge(p1).PersonAddAge(p3).PersonAddAge(p3);
//链式编程思想
cout << p2.age << endl;
}
int main()
{
test02();
//190+191=381
return 0;
}

代码8:空指针访问成员函数

点击查看代码
#include<iostream>
using namespace std;
//空指针访问成员函数
class Person
{
public:
void ShowAge()
{
cout << "Age" << endl;
}
void Showage()
{
if (this == NULL)
{
return;
}
//cout << m_Age << endl;
//传入的指针是为空的(NULL)
cout << this->m_Age << endl; }
int m_Age;
};
void test01()
{
Person* p = NULL;
//p->ShowAge();
p->Showage();
}
int main()
{
test01();
return 0;
}

代码9:

const修饰成员函数

首先 常函数:

点击查看代码
#include<iostream>
using namespace std;
class Person
{
public:
//this指针的本质就是:指针常量
//指针常量 是常量 不是指针 指针的指向是不可以修改的
void showPerson() const//常函数
{
m_B = 191;
this->m_B = 190;//未报错
//因为 this指针的本质可以表示为:Person* const this;是一个指针常量 在Person*前面在加一个const
//const Person* const this; 就是对应得值也不可以修改了 等价于我们在成员函数后面加const
//所以说在成员函数后面加const 修饰的就是this指针 让指针指向的值也不可以修改
//m_A = 100;
// 等价于this->m_A = 100;
//this = NULL;//this指针是不可以修改指针的指向的 //不想被修改值 需要在函数名字后面加const
}
int m_A;
mutable int m_B;//可以在常函数当中修改成员变量的值
};
//在成员函数后面加上const 该函数称为常函数
//常函数内部是不可以修改成员属性的
//成员属性声明的时候加关键字mutable之后 可以在常函数当中修改
void test01()
{
Person p;
p.showPerson();
}
//在声明对象的前面加上const 这个对象叫做常对象
//常对象只可以调用常函数 int main()
{
test01();
return 0;
}

其次 常对象

点击查看代码
#include<iostream>
using namespace std;
class Person
{
public:
void func()
{
m_A = 1;
}
//this指针的本质就是:指针常量
//指针常量 是常量 不是指针 指针的指向是不可以修改的
void showPerson() const//常函数
{
m_B = 191;
this->m_B = 190;//未报错
//因为 this指针的本质可以表示为:Person* const this;是一个指针常量 在Person*前面在加一个const
//const Person* const this; 就是对应得值也不可以修改了 等价于我们在成员函数后面加const
//所以说在成员函数后面加const 修饰的就是this指针 让指针指向的值也不可以修改
//m_A = 100;
// 等价于this->m_A = 100;
//this = NULL;//this指针是不可以修改指针的指向的 //不想被修改值 需要在函数名字后面加const
}
int m_A;
mutable int m_B;//可以在常函数当中修改成员变量的值
};
//在成员函数后面加上const 该函数称为常函数
//常函数内部是不可以修改成员属性的
//成员属性声明的时候加关键字mutable之后 可以在常函数当中修改
void test01()
{
Person p;
p.showPerson();
}
//在声明对象的前面加上const 这个对象叫做常对象
//常对象只可以调用常函数 void test02()
{
const Person p; //在对象的前面 加上 const 变为常对象
//依然不允许修改指针指向的值
//p.m_A = 100;//no
p.m_B = 190;//yes
//m_B 是特殊值 在常对象下面也可以修改
//常对象只可以调用常函数
p.showPerson();
//p.func();
//常对象 不可以调用普通的成员函数 因为普通的成员函数是可以修改属性的
}
int main()
{
test01();
return 0;
}

**最后 today完成**

C++学习记录1的更多相关文章

  1. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  2. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  3. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  4. UWP学习记录12-应用到应用的通信

    UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...

  5. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  6. UWP学习记录10-设计和UI之控件和模式7

    UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...

  7. UWP学习记录9-设计和UI之控件和模式6

    UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...

  8. UWP学习记录8-设计和UI之控件和模式5

    UWP学习记录8-设计和UI之控件和模式5 1.日历.日期和时间控件 日期和时间控件提供了标准的本地化方法,可供用户在应用中查看并设置日期和时间值. 有四个日期和时间控件可供选择,选择的依据如下: 日 ...

  9. UWP学习记录7-设计和UI之控件和模式4

    UWP学习记录7-设计和UI之控件和模式4 1.翻转视图 使用翻转视图浏览集合中的图像或其他项目(例如相册中的照片或产品详细信息页中的项目),一次显示一个项目. 对于触摸设备,轻扫某个项将在整个集合中 ...

  10. UWP学习记录6-设计和UI之控件和模式3

    UWP学习记录6-设计和UI之控件和模式3 1.按钮 按钮,响应用户输入和引发 Click 事件的控件. 使用<Button>就能创建一个按钮控件了.按钮是 ContentControl, ...

随机推荐

  1. 【CSAPP】Cache Lab 实验笔记

    cachelab这节先让你实现个高速缓存模拟器,再在此基础上对矩阵转置函数进行优化,降低高速缓存不命中次数.我的感受如上一节,实在是不想研究这些犄角旮旯的优化策略了. 前期准备 我实验的时候用到了va ...

  2. 批量安装Windows系统

    今天我们利用Windows server 2019自带的Windows部署服务通过网络批量安装Win 10 一.Windows服务 1)WDS WDS(Windows Deployment Servi ...

  3. Vulnhub-Tomato靶机实战

    前言 靶机下载地址:https://www.vulnhub.com/entry/tomato-1,557/ KALI地址:192.168.94.108 靶机地址:192.168.94.30 一.信息收 ...

  4. RESTFul是一种风格

    只要符合RESTFul风格的,都可以叫做使用了RESTFul架构,一般的网站里传数据,都是用的?a=1&b=2...如果是RESTFul风格的话,就会是/a/1/b/2..类似于这样的方式来传 ...

  5. 大陆出境海缆TPE APCN NCP APG简介

    目前我国的登陆站主要设立在三个城市 山东 山东青岛登陆站(隶属中国联通) EAC-C2C TPE(美国方向) 上海 上海崇明登陆站(隶属中国电信) APCN2(亚太) NCP(长线--美国,新建,亚太 ...

  6. awk内建函数

    内建函数 length() 获得字符串长度 cat score.txt Marry 2143 78 84 77 Jack 2321 66 78 45 Tom 2122 48 77 71 Mike 25 ...

  7. 693. Binary Number with Alternating Bits - LeetCode

    Question 693. Binary Number with Alternating Bits Solution 思路:输入一个整数,它的二进制01交替出现,遍历其二进制字符串,下一个与上一个不等 ...

  8. 基于 GraphQL 的 BFF 实践

    随着软件工程的发展,系统架构越来越复杂,分层越来越多,分工也越来越细化.我们知道,互联网是离用户最近的行业,前端页面可以说无时无刻不在变化.前端本质上还是用户交互和数据展示,页面的高频变化意味着对数据 ...

  9. python中f'{}'用法

    python3.6增加的方法,字符串定义以f开头,可以使用{}包裹变量,方便字符串的定义. 有些时候很懒,碰到写的比较清晰的就直接搬运:https://blog.csdn.net/weixin_387 ...

  10. Linux系列之安装JDK

    卸载open jdk #查看jdk [root@localhost tools]# rpm -qa | grep jdk java-1.8.0-openjdk-headless-1.8.0.65-3. ...