C++ primer笔记 -基本语言
C++最重要的特征是类,程序员可以使用类自定义数据类型,C++有时候将这些类型称为“类类型”,以区别于内置类型。
类型作用:
1、告诉我们数据代表的是什么意思
2、对数据可以执行哪些操作
算数类型:整数、单个字符、布尔值(整型)和浮点数(浮点型)。C++标准规定了每个算术类型的最小存储空间,但它并不阻止编译器使用更大的存储空间。(限制了最小的但没有限制最大的)
C++程序员通常把变量称为“变量”或者“对象”。
变量的类型作用:
1、决定了变量的内存大小和布局
2、能够存储与该内存中的值的取值范围以及在该变量上的操作集
左值和右值的区别:
左值就是变量的地址,或者一个代表“对象在内存中的位置”的表达式。
右值就是变量的值。
左值可以出现在赋值语句的左边或者右边,但右值只能出现在右边
1 int k =0;
2 int j = k;
k作为一个变量,可以出现在左边或者右边。变量是一个左值
变量的定义是为变量分配存储空间,还可以为变量指定初始值。
声明用于向程序表明变量的类型和名字,一般使用关键字extern来声明。
初始化:复制初始化和直接初始化
1 int k(1024); //复制初始化
2 int k = 1024; //直接初始化
对类类型来说,每个类会定义或者使用默认的构造函数来进行成员变量的初始化。
extern关键字是声名变量名而不是定义它,说明变量的定义在函数的其他地方,在程序中变量可以声明多次,但只能定义一次。
作用域:全局作用域、局部作用域和语句作用域。
1 #include<iostream>
2 int g_sum; //全局作用域
3 int main()
4 {
5 int sum =0; //局部作用域
6 for(int val =1;val != 112;val++) //val 语句作用域
7 sum += val;
8 std::cout << "Sum=“ <<sum <<std::endl;
9 return 0;
10 }
常量const 在定义时,必须给予初始化,并在以后不允许被修改。
在全局作用域中声明的const变量是定义该对象的文件局部变量,次变量只存在于那个文件中,不能被其他文件访问。要使const变量能够被其他文件访问,必须使用extern显示的指出来。eg:
1 text.cpp
2 const k= 100; //这个只能在text.cpp中访问
3
4 text2.cpp
5 extern const k =100; //这个可以被任意文件访问
typedefy 用来定义类型的同义词
枚举 enum ,默认第一个枚举成员的赋值为0,后面的内个成员都比前面的大1.
enum Point{
point1,point2,point3,point4
};
Point pt = point1;
Point ptd =pt;
枚举类型的对象初始化或者赋值,只能通过其枚举成员或者同一枚举类型的其他对象来进行。
类:
类定义了组成该类型的数据(成员变量)和操作(成员函数)。定义了类就相当于定义了一个新的类型,该类型的名字就是类名。
当利用这个类名定义一个对象时,则每个对象所占据的存储空间只与该对象数据成员所占据的存储空间有关系,与成员函数无关。
变量定义用于为变量分配存储空间,还可以为变量指定初始化的值,在一个程序中,变量有且只有一个定义。
定义变量和定义数据成员有非常重要的区别:一般不能把类成员的初始化作为其定义的一部分。当定义数据成员时,只能指定该数据成员的名字和类型。类不是在类定义里定义数据成员时初始化数据成员而是通过构造函数来初始化(成员列表或者构造函数体内进行赋值初始化)。
使用class与stuct定义类的区别仅仅是影响默认初始访问的级别,class默认访问的是pricate,stuct默认访问的是public。
C++ primer笔记 -基本语言的更多相关文章
- C++ Primer笔记
C++ Primer笔记 ch2 变量和基本类型 声明 extern int i; extern int i = 3.14;//定义 左值引用(绑定零一变量初始值,别名) 不能定义引用的引用:引用必须 ...
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- IOS学习笔记07---C语言函数-printf函数
IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...
- IOS学习笔记06---C语言函数
IOS学习笔记06---C语言函数 -------------------------------------------- qq交流群:创梦技术交流群:251572072 ...
- c++ primer 笔记 (一)
昨天开始看的<C++ Primer>,确实不错.希望这周抓紧看完,每天做下笔记,以便以后复习. main函数返回一个值给操作系统 操作系统通过main函数返回的值来确定程序是否成功执行 ...
- C++ Primer 笔记(1)基础中的战斗机 输入输出 对输入不定数据处理
今天打算再重新好好的看一遍C++ Primer这本很经典的书籍,笔记开始: 1.每个C++程序都包含一个或者多个函数,其中必须有一个main,操作系统通过调用main入手运行程序: 2.函数包括:返回 ...
- 《C语言深度剖析》学习笔记----C语言中的符号
本节主要讲C语言中的各种符号,包括注释符.单引号双信号以及逻辑运算符等. 一.注释符 注释符号和注释在程序的预编译期就已经被解决了,在预编译期间,编译器会将注释符号和注释符号之间的部分简单的替换成为空 ...
- C++ Primer 笔记 第一章
C++ Primer 学习笔记 第一章 快速入门 1.1 main函数 系统通过调用main函数来执行程序,并通过main函数的返回值确定程序是否成功执行完毕.通常返回0值表明程序成功执行完毕: ma ...
随机推荐
- CF1768F 题解
题意 传送门 给定长度为 \(n\) 的序列 \(a\),求序列 \(f\),满足: \[f_i= \begin{equation} \begin{cases} 0&(i=1)\\ \min\ ...
- k8s网路策略
Network Policy(网络策略) 默认情况下,k8s集群网络是没有任何限制的,Pod可以和任何其他Pod通信,在某些场景下需要做网络控制,减少网络面的攻击,提高安全性,就会用到网络策略(Net ...
- 【剑指Offer】【树】二叉树中和为某一值的路径
题目:输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大的数 ...
- Linux系统下修改KVM虚拟机配置
一. 安装虚拟机 1. 设备重启进入BIOS,打开SMMU.F10保存退出 2. 进入系统后安装线管组件 virt-install qemu-kvm qemu-img virt-manager lib ...
- Python中Websocket的实现及基本原理
一.什么是 WebSocket ? WebSocket 是一种标准协议,用于在客户端和服务端之间进行双向数据传输.但它跟 HTTP 没什么关系,它是基于 TCP 的一种独立实现. 以前客户端想知道服务 ...
- Office2021专业增强版激活
1.以管理员权限运行win+R输入CMD,进入命令行界面,输入以下命令 32位系统输入:cd /d %ProgramFiles(x86)%\Microsoft Office\Office16 64位系 ...
- CORScanner-20211125
Usage: cors_scan.py [-h] [-u URL] [-i INPUT] [-t THREADS] [-o OUTPUT] [-v] [-d [HEADERS [HEADERS ... ...
- 01爬取豆瓣网电影数据进行numpy的练习
level 2:10.案例:编写爬虫爬取豆瓣电影排行榜(电影名称,评分),保存为csv文件 a.用numpy加载csv数据 b.把评分列转换成float64类型 c.计算电影的平均评分 d.求评分最高 ...
- boost asio 网络编程案例简单改写
boost教程:http://zh.highscore.de/cpp/boost/ 改写7.4网络编程案例,服务器支持连接多个客户端 服务端: #include <iostream> #i ...
- js导出数据为excel表
1.接口数据后端写, 2.代码如下: var params={ "filters":[ {"propertyCode":"sequenceNo&quo ...