东南大学第5章c++程序结构
本章重点注意const
(一)作用域
作用域:标识符的可见范围;
可见性:标识符是否可以引用的问题。
1,函数原型作用域
2,块作用域
3,类作用域
4,文件作用域
------------|
代码区
------------|
全局数据区
------------|
堆区
------------|
栈区
------------|
可见性:从内向外看,如果看见则引用。
(二)对象的生存期
1,静态生存期 与程序的运行期相同
2,动态生存区
void main()
{
}
void fun()
{
}
(三)数据与函数
(1)局部变量:
#include iostream.h
int fun1();
int fun2();
void main()
{
}
int fun1()
{
}
int fun2()
{
}
???
(2)全局变量: 在所有函数的外部,在程序的每个函数都可见
(3)数据成员:
(四)静态成员
1,静态数据成员
统计对象个数
class Point{
};
Point::Point(Point &p)
{
}
int Point::countP=0;
源码见文末
2,静态成员函数
class Point
{
}
int main()
{
}
在基类的派生类中,可以直接访问继承而来的protected成员,但是不能访问private限制的成员.
(五)友元
1,普通函数
class Point{
};
double fDist(Point &a,Point &b)
{
}
2,友元成员函数
class Student; //预声明
class Teacher{
};
class Student{
};
3,友元类
class A{
};
class B{
};
友元是单向的。
(六)共享数据的保护
常类型:必须初始化,而且不能被更新。
1,常引用做形参
int main()
{
}
void display(const double &r){
}
2.常对象
class A{
};
A const a(3,4);
3,常成员函数
class R{
};
int main()
{
}
4,常数据成员
class A{
};
const int A::b=10;
A::A(int i):a(i),r(a){};
void main()
{}
常数组,常指针。
(七)编译预处理命令
1,
include 尖括号
include""
#define
#if
#ifdef
例:
//head.h
#ifndef HEAD_H
#endif
...大型的程序有助于多人开发
(八)多文件结构和工程
多文件结构
类声明 file.h
类实现 file.xpp
类使用 main所在的file.cpp
使用vc++建立一个多文件工程
#include iostream.h
class Point{
};
Point::Point(Point &p)
{
}
int Point::countP=0;
void main()
{
}