摘要:
规则: 静态成员是所有对象共享的,所以不能在静态方法里访问非静态的元素。(因为每个对象都有自己的this指针,静态方法不是属于某个特定的对象,而是由全体对象共享的,静态成员存储地址与对象并不在一起) 非静态方法可以访问类的静态成员,也可以访问类的非静态成员。 this指针是类的一个自动生成、自动隐藏 阅读全文
摘要:
面对对象编程技术的一个重要特征是用一个对象把数据和对数据处理的方法封装在一起。 在前面的例子里,我们一直是在使用对象(也可以说某个类的实例)来调用方法,每个方法只处理调用它的那个对象所包含的数据,所有的数据都属于同一个对象。 C++允许我们把一个或多个成员声明为属于某个类,而不是仅属于该类的对象。( 阅读全文
摘要:
友元关系是类之间的一种特殊关系,这种关系不仅允许友元类访问对方的public方法和属性,还允许友元访问对方的protected和private方法和属性。 实例1:友元关系访问保护量 1 #include <iostream> 2 #include <string> 3 4 using namesp 阅读全文
摘要:
覆盖是指派生类函数覆盖基类函数(函数名字参数相同且基类函数必须有virtual关键字) 以上学习可知可以通过创建新的子类来重用现有的代码(继承) 当我们需要在基类里提供一个通用的函数,但在它的某个子类里需要修改这个方法的实现,覆盖(overriding)就可以做到。 实例1:覆盖应用 1 //级别 阅读全文
摘要:
访问控制:C++提供用来保护(保护意思是对谁可以调用某个方法和访问某一个属性加上一个限制)类里的方法和属性的手段 实例1:访问级别应用 1 //级别 允许谁来访问 2 //public 任何代码 3 //protected 这个类本身和它的子类 4 //private 只有这个类本身 5 #incl 阅读全文
摘要:
实例1:构造器及其参数的继承应用 1 #include <iostream> 2 #include <string> 3 4 class Animal//定义Animal类 5 { 6 public: 7 std::string mouth; 8 std::string name; 9 10 Ani 阅读全文
摘要:
this指针指的是指向当前类生成的对象 继承机制使得程序员可以创建一个类的堆叠层次结构,每个子类均将继承在它的基类定义的方法和属性。 简单地说,就是通过继承机制,可以对现有的代码进行进一步扩展,并应用到新的程序中。 基类可以派生出其它的类,也称为父类或超类(如动物类) 子类是从基类派生出来的类(如乌 阅读全文
摘要:
构造器和通常方法的主要区别: 1、构造器的名字必须和它所在类的名字一样 2、系统在创建某个类的对象时会第一时间自动调用这个类的构造器 3、构造器永远不会返回任何值 实例1:构造器的运用 1 #include <iostream> 2 3 #define FULL_GAS 85 4 5 class C 阅读全文
摘要:
对象本质上不过是一种新的数据类型。 类(class)是一个模型(就像是一张蓝图,它决定一个对象将拥有什么样的属性、功能等),且每个类跟变量一样都有一个名字。当我们为这个类创建实例的时候,也就是对象(类的具体化实现)。 类由变量(类里的变量称属性)和函数(类里的函数称方法)组成,对象将使用那些变量来存 阅读全文
摘要:
联合(union)与结构有很多相似之处,联合也可以容纳多种不同类型的值,但是它每次只能储存这些值中的一个(即当我们已经给联合里的一个成员赋值后,再给另一个成员赋值时,将丢弃第一个成员的值)。 实例1:联合的应用 1 #include <iostream> 2 3 union mima 4 { 5 u 阅读全文
摘要:
实例1:值传递 1 #include<iostream> 2 3 void changeAge(int age,int newAge); 4 int main() 5 { 6 int age = 24;//定义一个age,占一处地址 7 std::cout << "My age is " << ag 阅读全文
摘要:
结构是一种由程序员自己定义的、由其他变量类型组合而成的数据类型。其所能包含的变量的个数是没有限制的。 实例1:简单数据库读写 1 #include <iostream> 2 #include <fstream> //文件操作 3 #include <windows.h> // 为了使用Sleep() 阅读全文
摘要:
计算机是把数组以一组连续的内存块保存的。 数组的第一个元素的地址为该数组的基地址。 实例1:数组元素地址打印 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 const unsigned short ITEMS 阅读全文
摘要:
指针的类型必须与由它保存其地址的变量的类型一致,当某个变量的地址给了指针p时,就可以通过*p(即表示该地址的数据)来对该变量数据进行操作 一定要牢记一个事实:指针所保存的是内存中的一个地址,它并不保存指向的数据的值本身。因此务必确保指针对应一个已经存在的变量或者一块已经分配的内存 *有两种用途,一是 阅读全文
摘要:
小知识:程序以文件的形式存储在硬盘,但它们却是在计算机的内存中运行 对于变量可以通过变量名与地址两种方式进行索引,变量的地址在程序执行期间是不会发生变换的 地址是计算机内存中的某个位置;指针是专门用来存放地址的特殊类型变量 阅读全文
摘要:
数组:可以把许多个同类型的值存储在同一变量名下 实例1:输入的数据存储到数组中,并计算其和与平均值输出 1 #include <iostream> 2 3 using namespace std;//使用作用域 4 5 int main() 6 { 7 int array[10]; 8 int i; 阅读全文
摘要:
函数重载:实质就是用同样的名字再定义一个有着不同参数类型及个数来实现不同操作的函数。 实例1:改变同一函数的输入参数类型 1 #include <iostream> 2 3 void convertTemperature(double tempIn, char typeIn); 4 void con 阅读全文
摘要:
实例1:根据输入内容输出 1 #include<iostream> 2 using namespace std;//名字空间 3 int main() 4 { 5 char answer; 6 7 cout << "请问可以格式化您的硬盘吗?!【Y/N】" << "\n"; 8 cin >> ans 阅读全文
摘要:
ifream与ofream分别为文件读取类和文件写入类 实例1:文件读取(读取同一文件夹的test.txt文件内容) 1 #include <fstream>// 涉及到了文件流操作 2 #include <iostream> 3 4 using namespace std; 5 6 int mai 阅读全文
摘要:
实例1:忽略输入字符串的前面部分字符输出 1 #include <iostream> // 2 3 using namespace std;//名字空间 4 5 int main() 6 { 7 char buf[20];//只能存放19个字符,因为字符串以0结尾 8 9 cin.ignore(7) 阅读全文