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笔记 -基本语言的更多相关文章

  1. C++ Primer笔记

    C++ Primer笔记 ch2 变量和基本类型 声明 extern int i; extern int i = 3.14;//定义 左值引用(绑定零一变量初始值,别名) 不能定义引用的引用:引用必须 ...

  2. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  3. [java学习笔记]java语言核心----面向对象之构造函数

    1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

  4. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

  5. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  6. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  7. c++ primer 笔记 (一)

    昨天开始看的<C++ Primer>,确实不错.希望这周抓紧看完,每天做下笔记,以便以后复习. main函数返回一个值给操作系统   操作系统通过main函数返回的值来确定程序是否成功执行 ...

  8. C++ Primer 笔记(1)基础中的战斗机 输入输出 对输入不定数据处理

    今天打算再重新好好的看一遍C++ Primer这本很经典的书籍,笔记开始: 1.每个C++程序都包含一个或者多个函数,其中必须有一个main,操作系统通过调用main入手运行程序: 2.函数包括:返回 ...

  9. 《C语言深度剖析》学习笔记----C语言中的符号

    本节主要讲C语言中的各种符号,包括注释符.单引号双信号以及逻辑运算符等. 一.注释符 注释符号和注释在程序的预编译期就已经被解决了,在预编译期间,编译器会将注释符号和注释符号之间的部分简单的替换成为空 ...

  10. C++ Primer 笔记 第一章

    C++ Primer 学习笔记 第一章 快速入门 1.1 main函数 系统通过调用main函数来执行程序,并通过main函数的返回值确定程序是否成功执行完毕.通常返回0值表明程序成功执行完毕: ma ...

随机推荐

  1. Typopa软件和计算机的基本内容

    Typopa软件和计算机的基本内容 TYPORA软件markdown的运用 输入#按空格键输入文本就形成了一个标题(几个#就是几级标题最高六级)或者ctrl加数字数字几就是几级标题. 输入*加空格就形 ...

  2. 重置Beyond Compare 4试用时间

    重置Beyond Compare 4试用时间 什么是Beyound Compare Beyond Compare是一套由Scooter Software推出的文件比较工具.主要用途是对比两个文件夹或者 ...

  3. 数据类型之字符串(string)(四)

    字符串本质是:字符序列不可变1.字符串编码,Unicode ord('A') ord('王') 2.创建字符串,引号 a = 'Hello python!' b = "I'm a teach ...

  4. CVE-2013-2566 SSL/TLS RC4 信息泄露漏洞 修复方案

    详细描述 安全套接层(Secure Sockets Layer,SSL),一种安全协议,是网景公司(Netscape)在推出Web浏览器首版的同时提出的,目的是为网络通信提供安全及数据完整性.SSL在 ...

  5. Docker部署Minio文件系统

    MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储. 它是与 Amazon S3 云存储服务兼容的 API. 使用 MinIO 为机器学习.分析和应用程序数据工作 ...

  6. vue 数组对象深拷贝 并根据某项属性排序

    vue 数组对象深拷贝 并根据某项属性   serialNumber  排序 原始数据 navListData: [ { name: '企业速览', isHot: false, isVip: fals ...

  7. 升级grafana

    We recommend everyone to upgrade Grafana often to stay up to date with the latest fixes and enhancem ...

  8. js导出数据为excel表

    1.接口数据后端写, 2.代码如下: var params={ "filters":[ {"propertyCode":"sequenceNo&quo ...

  9. 安装MinGW-C++开发环境2--软件安装

    下面以MinGW安装路径为C:\Local\MinGW64为例说明安装过程: 1.解压x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z到C:\Local\Min ...

  10. Jmeter面试

    jmeter面试题及答案 1.解释什么是jmeter? jmeter是一款java开源工具,用于性能负载测试.它旨在分析和衡量web应用程序和各种服务的性能和负载功能行为. 2.说明jmeter的工作 ...