变量存储类别 变量声明/定义的一般形式: 存储类别 数据类型 变量名 存储类别指的是数据在内存中存储的方法.存储方法分为静态存储和动态存储两大类.标准C语言为变量.常量和函数定义了4种存储类型:extern.auto.static.register.根据变量的存储类别,可以知道变量的作用域和存储期.这4种存储类型可分为两种生存期限:永久的(在整个程序执行期都存在)和临时的(暂时保存在堆栈和寄存器中).extern和static用来标识永久生存期限的“变量和函数”,而anto和register用来…
除法运算中注意: 如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2:而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000. 取余运算中注意: 该运算只适合用两个整数进行取余运算,如:10%3 = 1:而10.0%3则是错误的:运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1. -- C语言中存储类别又分为四类:自动(auto).静态(static).寄存器的(register)和外部的(extern). 1. …
C++中共有四种存储类别标识符:auto/static/register/extern 1.auto 函数或分程序内定义的变量(包括形参)可以定义为auto(自动变量).如果不指定存储类别,则隐式定义为auto. 例如,函数类有如下定义: auto int x , y ; 等价于: int x , y ; 2.static 除了形参,可以将局部变量和全局变量定义为静态变量.用static标识符. static int a;//a是全局静态变量 f() {static int b = 1;}//b…
首先了解内存,内存就是一排房间,编号从0开始,0,1,2,3,4,5...... 房间里面一定要住人,新人住进去了,原来的人就走了:不管你住不住,里面都有人. 编号就是地址.里面的人就是内容,为了我们(人)记着方便,我们给他们起些名字,如张三.李四.于是, 变量,就是一个房间,它有编号(地址),他有名字(变量名),他有内容(里面的人). int a = 3;   // a 是名字,3 是内容,地址可以假设是0x 12345678 (通常就是32位地址). // 0x12345678 这个房间里面…
  以下是本人的对类与对象.继承的一些理解,如有错误之处万望谅解,如有朋友愿意指正,十分乐意,万分感谢!   类与对象     类与对象是学习编程的基础(大概吧),那么何为类?何为对象呢?   一.简介         何为类?说到类我想先说一下何为对象,在现实生活中,对象可以用来指代你的男/女朋友,按我的理解,我认为对象就是一个个具体的个体,比如一个学生,一个篮球,一个苹果都是一个个对象,而类呢,就是对对象的抽象,就比如我们说的分而类之的感觉,比如在这里,球类是对篮球的一个抽象,篮球属于球类,…
类提供了一种 组合数据和功能 的方法.创建一个新类意味着:创建一个新 类型  的对象,从而允许创建一个该类型的新 实例. 每个类的实例可以拥有: 保存自己状态的属性. 一个类的实例也可以有改变自己状态的方法(定义在类中的). 一.名称和对象 对象具有个性,多个名称(在多个作用域内)可以绑定到同一个对象,这在其他语言中成为别名. 在处理不可变的基本类型(数字.字符串.元祖)时,可以安全的忽略它. 但是,对可变对象如(列表.字典.集合等),python代码的语义会产生惊人的影像. 二.作用域和命名空…
什么是 Java的 继承 ? 在LOL中,武器是物品的一种,也是有名称和价格的 所以在设计类的时候,可以让武器继承物品,从而继承名称和价格属性 步骤 1 : 物品类Item 物品类Item 有属性 name,price public class Item { String name; int price; } 步骤 2 : 武器类Weapon(不继承) 武器类: Weapon不继承Item的写法 独立设计 name和price属性 同时多了一个属性 damage 攻击力 public class…
昨天去面试一家公司,面试题中有一个题,自己没弄清楚,先记录如下: class D { public: void printA() { cout<<"printA"<<endl; } virtual void printB() { cout<<"printB"<<endl; } }; main函数调用: D *d=NULL; d->printA(); d->printB(); 输出结果是? 当时想的是对象d直…
//smartvessel@gmail.com class Table{ Name * p; size_t sz; publish: Table(size_t s = 15){p = new Name[sz=s];} ~Table(){delete[]p ;} ...... } void h() { Table t1; Table t2 = t1; Table t3; t3 = t2; } 在h()结束时,默认构造函数调用了2次,而析构函数被调用了3次,为何? Table t1; 调用1次默认构…
写C.C++代码的小伙伴一定在头疼变量的作用域.生存期.存储类别问题.什么静态.外部.寄存器.局部.全局搞得一头雾水.今天咱们就来梳理一下他们的变态关系(什么不得了的事情???) 1.变量的作用域 说白了,作用域就是一个"代码块",也就是大括号包裹的那一段东西.包括函数体.控制语句块这些.大家应该都有所耳闻. #include<stdio.h> int x = 5; // 全局变量 int main() { printf("%d ",x); int x…
全局变量全部存放在静态存储区中,在程序开始执行时给全局变量分配存储单元,程序执行完毕就释放这些空间.在程序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放. 在动态存储区中存放以下数据: 1函数形式参数.在调用函数时给形参分配存储空间.2函数中的自 动变量(未加static声明的局部变量,详见后面的 介绍).3函数调用时的现场保护和返回地址等.对以上这些数据,在函数调用开始时分配动态存储空间,函数结束时释放这些空间.在程序执行过程中,这种分配和释放是动态的,如果在一个程序中两次调用同…
1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成开发工具Xcode编写OC的HelloWorld程序,在Xcode的控制台中,该程序的输出结果如下图: 图-1 1.2 方案 首先,启动集成开发工具Xcode. 然后,创建OC语言的工程. 最后,运行所创建的工程. 1.3 步骤 实现此案例需要按照如下步骤进行. 步骤一:启动开发工具Xcode 在D…
笔记参考C++视频课程 黑马C++ C++ 面向对象的三大特性:封装.继承.多态 目录 目录 目录 一.封装 1.1 封装的意义-属性和行为 1.2 struct和class的区别 1.3 成员属性设置为私有 二.对象的初始化和清理 2.1 构造函数和析构函数 2.2 构造函数的分类及调用 2.3 拷贝构造函数调用时机 2.4 构造函数调用规则 2.5 深拷贝与浅拷贝 2.6 初始化列表 2.7 类对象作为类成员 2.8 静态成员 三.C++对象模型和this指针 3.1 this指针 3.2…
什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首先看它的位置,是在father类中,而不是在__init__中.那么一个小小的静态字段,我为什么要特意写一篇番外给它呢?耐着性子看下去,你就会发现一个小小的类变量,却折射出了整个类的世界. 首先我们先来解释一下什么叫做静态字段:        我们看上面的例子,左中右三张图,左边是纯净的代码,中间是…
1.类是什么?  类就相当于模板,就是把同一类的事物的共同特征进行的抽象. 类的创建和说明: 类是先根据一些具体的对象(实体的东西)来抽象出来的共同的特性,然后用代码来表示. 在类中,用数据表示事物的状态,用函数(方法)实现事物的行为动作. 当创建一个类时,系统会默认的添加一个构造函数,如果用户自己写一个构造函数则会覆盖这个默认的构造函数.当然构造函数也是可以重载的. 构造函数的特点: 构造函数名必须与类名相同. 不能有任何的返回值类型. 访问修饰符一般都是Public. 如果一个类中有一个构造…
转自:http://www.cnblogs.com/Eva-J/p/5044411.html 什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首先看它的位置,是在father类中,而不是在__init__中.那么一个小小的静态字段,我为什么要特意写一篇番外给它呢?耐着性子看下去,你就会发现一个小小的类变量,却折射出了整个类的世界. 首先我们先来解释…
什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首先看它的位置,是在father类中,而不是在__init__中.那么一个小小的静态字段,我为什么要特意写一篇番外给它呢?耐着性子看下去,你就会发现一个小小的类变量,却折射出了整个类的世界. 首先我们先来解释一下什么叫做静态字段:        我们看上面的例子,左中右三张图,左边是纯净的代码,中间是…
课程<C++语言程序设计进阶>清华大学 郑莉老师) 基本概念 继承与派生的区别: 继承:保持已有类的特性而构造新类的过程称为继承. 派生:在已有类的基础上新增自己的特性(函数方法.数据成员)而产生新类的过程称为派生 被继承的已有类称为基类,派生出的新类称为派生类,直接参与派生出某类的基类称为直接基类,基类的基类甚至更高层的基类称为间接基类. 继承与派生的目的 继承的目的:实现设计与代码的重用. 派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对 原有程序的基础上增加新的特…
一.面向对象的特点:a.封装:封装是面向对象的核心思想,将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想: 保证了类内部数据的完整性,应用该类的用户不能轻易直接操纵此数据结构,只能执行类允许公开的数据.b.继承:类与类之间有关系,叫做关联:继承是关联中的一种: 继承性主要利用特定对象之间的共有属性.c.多态:将父类对象应用于子类的特征就是多态:“一个接口,多种实现”,就是同一种事物表现出的多种形态. 多态的实现并不依赖具体类,而是依赖于抽象类和接口: 在多态的…
通常情况下,如果我们不适用某个函数,则无需为该函数提供定义.但我们必须为每个虚函数都提供定义而不管它是否被用到了,这因为连编译器也无法确定到底会适用哪个虚函数 对虚函数的调用可能在运行时才被解析: 当某个虚函数通过指针或引用调用时,编译器产生的代码直到运行时才能确定应该调用哪个版本的函数.被调用的函数是与之绑定到指针或引用上的对象的动态类型相匹配的那一个 注意:动态绑定只有当我们通过指针或引用调用虚函数时才会发生.当我们通过一个具有普通类型(非引用非指针)的表达式调用虚函数时,在编译时就会将调用…
今日内容 1.面向对象 2.类与对象 3.三大特征——封装 4.构造方法 教学目标 1.能够理解面向对象的思想 2.能够明确类与对象关系 3.能够掌握类的定义格式 4.能够掌握创建对象格式,并访问类中的成员 5.能够完成手机类的练习 6.能够理解对象的内存图 7.能够说出成员变量和局部变量的区别 8.能够理解private关键字的含义 9.能够说出this关键字可以解决的问题 10.能够理解构造方法的含义 11.能够用封装的思想定义一个标准类 第1章 面向对象思想 1.1  面向对象思想概述 概…
本篇要学习的内容和知识结构概览 类及其实例化 类的定义 将一组对象的共同特征抽象出来, 从而形成类的概念. 类包括数据成员和成员函数, 不能在类的声明中对数据成员进行初始化 声明类 形式为: class 类名 { private: 私有数据和函数 public: 公有数据和函数 protected: 受保护的数据和函数 }; // 注意分号 无论是数据成员还是成员函数, 都是这个类的成员, 都具有一个访问权限, 如果没有关键字进行修饰, 则默认为private权限 声明一个类, 像这样: //…
     本文目录:    创建简单类和对象 继承 抽象类 接口 构造方法 析构函数     1. 创建简单类    创建一个People的类,在这里有四个要点说明一下: 第一个是在PHP中,访问属性(或者方法)不是用我们所常用的点运算符(.),而是用->. 第二个是在PHP中,方法需要用function在标识,这点于Javascript很类似. 第三点是当我们声明一个变量时,需要用var,这点也与Javascript非常类似. 第四点是在PHP中,也有着public ,protected,pr…
四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的…
本篇博客对应视频讲解 回顾 我们在第一篇文章中讲了编程中最基本的内容,如输入输出.字符串处理.数字类型计算.分支及循环结构等.无论学习什么语言,这些内容都是相通的. 本篇博客主要演示列表(List)的用法以及面向对象中类的概念,通过一个具体的实例去向大家展示如何对现实对象抽象,创建类,以及如何使用它. 理论基础 我们可以通过官方文档中的解释先初步理解一下列表.类.对象等概念.然后我们通过实际的代码示例,通过自己动手编写去亲身体会一下. 理解面向对象编程 关于面向对象的编程,我们可以通过官方文档中…
基类声明的指针变量和引用类型变量可以指向派生类的对象,而反过来派生类的指针却不能指向基类变量. 这与基类和派生类之间,被允许的赋值方向是相反的. 但是从逻辑上很容易推敲其合理性.…
<h4><strong>1.变量的存储类别</strong></h4>从变量值存在的角度来分,可以分为静态存储方式和动态存储方式.所谓静态存储方式指在程序运行期间由系统分配固定的存储空间的方式(<strong>程序开始执行时分配,在程序完毕时释放,在程序过程中它们占据国定的存储单元,而不是动态分配和释放</strong>).而动态存储方式在运行期间根据需要进行动态存储方式(<strong>在程序过程中申请和释放的一些空间&…
static的成员变量,不是存储在Bar实例之中的,因而不会有递归定义的问题. 类声明: class Screen: //Screen类的声明 1 类定义: class Screen{ //Screen类的定义 //etc... }; 1 2 3 当用实例化一个类的对象时,编译器会根据类的定义来分配相应的存储空间.也就是说,在创建对象前,一定要有完整的类定义,这样编译器才能正确的计算所需空间. 那么我们来看如下代码: class Screen{ Screen sc; //error, 'sc'…
我们知道,从变量的作用域(即从空间)角度来分,可以分为全局变量和局部变量. 从另一个角度,从变量值存在的作时间(即生存期)角度来分,可以分为静态存储方式和动态存储方式. 静态存储方式:是指在程序运行期间分配固定的存储空间的方式. 动态存储方式:是在程序运行期间根据需要进行动态的分配存储空间的方式. 用户存储空间可以分为三个部分: 程序区: 静态存储区: 动态存储区. 全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放.在程序执行过程中它们占据固定的存储单元,而不…
JavaScript变量可以用来保存俩种类型的值:基本类型和引用类型值 前言 JS变量可以用来保存两种类型的值:基本类型值和引用类型值.基本类型的值源自一下5种基本数据类型:Underfined.Null.Boolean.Number和String. 基本类型值和引用类型值具有以下特点: 基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中: 从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本: 引用类型的值是对象,保存在堆内存中: 包含引用类型值的变量实际上包含的并不是对象本…