include<iostream> include"Point, h using namespace std int main( cout<< Entering main.<<endI; Point A[2: for(int i=0; i<2; i++) A]Move(H+10+20); cout<< Exiting main.<<end; return 0
#include<iostream> #include "Point.h" using namespace std; int main() { cout<<"Entering main..."<<endl; Point A[2]; for(int i=0;i<2;i++) A[i].Move(i+10,i+20); cout<<"Exiting main..."<<endl; return 0; } 26
运行结果 Entering main ■■■ Default constructor called Default Constructor called Exiting main ■■■ Destructor called Destructor called
运行结果: Entering main... Default Constructor called. Default Constructor called. Exiting main... Destructor called. Destructor called. 27
C++语言程序设计 清华大学郑莉 关于内存地址 内存空间的访问方式 通过变量名访问 通过地址访问 ●地址运算符:& 例 int var 则&var表示变量va在内存中的起始地址
C++语言程序设计 清华大学 郑莉 28 关于内存地址 ⚫ 内存空间的访问方式 – 通过变量名访问 – 通过地址访问 ⚫ 地址运算符:& 例: int var; 则&var 表示变量var在内存中的起始地址
C++语言程序设计 清华大学郏莉 指针变量的概念 内存用户数据区 概念 指指针:内存地址,用于 可接访问内存单元 指针变量: 2000 变量 用于存放地址的变量 2004 变量 针 声明 例: static int 1 变量 3010 2000 static int *i pointer-&i 1 pointer 指向整型变量的指针 引用 1 pointer 1_ pointer 例1:i=3; 例2:* 1 pointer-3; 2000 2000
C++语言程序设计 清华大学 郑莉 29 声明 例:static int i; static int *i_pointer=&i; 指向整型变量的指针 指针变量的概念 概念 指针:内存地址,用于 间接访问内存单元 指针变量: 用于存放地址的变量 2000 3 i_pointer *i_pointer i 2000 内存用户数据区 变量 i 变量 j 变量 i_pointer 3 6 2000 2000 2004 3010 引用 例1: i=3; 例2: *i_pointer=3; 指 针
C++语言程序设计 清华大学郑莉 指针变量的初始化 指语法形式 存储类型数据类型*指针名=初始地址; 例:int*pa=&a; 针。注意事项 用变量地址作为初值时,该变量必须在指针初 始化之前已说明过,且变量类型应与指针类型 致 可以用一个已赋初值的指针去初始化另一个指 针变量。 不要用一个内部auto变量去初始化 static指针。 30
C++语言程序设计 清华大学 郑莉 30 指针变量的初始化 ⚫语法形式 存储类型 数据类型 *指针名=初始地址; 例: int *pa=&a; ⚫注意事项 – 用变量地址作为初值时,该变量必须在指针初 始化之前已说明过,且变量类型应与指针类型 一致。 – 可以用一个已赋初值的指针去初始化另一 个指 针变量。 – 不要用一个内部 auto 变量去初始化 static 指针。 指 针