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. pycharm过期解决方案

    如果你的pycharm老是过期,你可以直接下载最新版本的pycharm,然后加入一个网站获取激活码即可 http://idea.medeming.com/jets/

  2. PGSQL新建临时表

    初始化临时表,会话结束后自动删除 普通写法 CREATE TEMP TABLE tmp_student( id VARCHAR(10), name VARCHAR(3O), age INTEGER ) ...

  3. Kotlin初学习

    Java和Kotlin数据类型对照表

  4. Vue3.0 实现数据双向绑定的方法

    ue3.0 是通过Proxy实现的数据双向绑定,Proxy是ES6中新增的一个特性,实现的过程是在目标对象之前设置了一层"拦截",外界对该对象的访问,都必须先通过这层拦截,因此提供 ...

  5. Windows 11 调整工具 TweakNow WinSecret for Windows 11 3.2.0 中文汉化版

    Windows 11 调整工具 TweakNow WinSecret for Windows 11 中文版由大眼仔旭(www.dayanzai.me)发布.适用于 Windows 11 的 Tweak ...

  6. mybatis读取blob类型

    mybatis 读取blob数据 mybatis读取blob数据过程: 1.从数据库中读出blob数据类型,用pojo中的byte[]接收. 2.把文件保存成文件(或者变成base64也行). Cus ...

  7. springboot文件流下载

    1. 将文件以流的形式一次性读取到内存,通过响应输出流输出到前端 /** * @param path 想要下载的文件的路径 * @param response * @功能描述 下载文件: */ @Re ...

  8. js获取各种高度的方法

    js获取各种高度的方法 源文章:https://www.cnblogs.com/MrzhangRecord/p/9185868.html 目录 js获取各种高度的方法 1.获取元素的高度 模板:htm ...

  9. hdu 4283You Are the One

    The TV shows such as You Are the One has been very popular. In order to meet the need of boys who ar ...

  10. 17.SQLite数据库存储

    Android系统内置一个SQLite数据库,SQLite是一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少,通常只需要几百K的内存就足够了. SQLite不仅支持标准的SQL语法,还遵循了 ...