C/C++ 初学简单笔记 —2—
来源:互联网 发布:网络2d游戏排行榜2016 编辑:程序博客网 时间:2024/06/08 03:00
1. 静态成员
如:
class A
{
private:
static int id;
}
如:
static void display(类名 &对象别名p)
{p.xx=...};
3. 类的友元。
class C
{
private:
A a;
B b; // A,B 都是类名
public:
C(int a, int b, int c):a(a),b(b) {...}; // 调用 A(int i)构造方法初始化 a
静态成员属于类所有,不属于对象。但为所有对象所共享。
因为静态成员不属于对象所有,所以在对象初始化的时候,不会为静态成员分配内存空间。
故在类中,静态成员只是做了一个引用性的声明,必须在类外进行正式的声明。
声明格式: 类型 类名::静态成员名; // 也可以赋初始值,对于静态成员,系统会自动赋予初始值。如:
class A
{
private:
static int id;
}
int A::id;
访问: A::id
2. 静态方法,同样为类所有,为对象所共享,类可以直接调用,而不必声明对象来调用
调用格式: 类名::方法
注意,在静态方法中,可以访问静态成员和静态成员方法。但是不能访问非静态成员变量,
因为此时对象还没有生成,何来的成员变量?
如果要在静态方法中使用成员变量,可以使用别名。如:
static void display(类名 &对象别名p)
{p.xx=...};
3. 类的友元。
C++为解决效率的需要,提出了一个友元的概念,
只要把某个类外函数声明为该类的友元,就可以直接访问类中的任何成员(public,protect,private)
1)将普通函数声明为类的友元
2)将某个类的成员函数声明为本类的友元函数
3)将某个类声明为本类的友元类
友元都声明在类中,只是说明友元函数有权访问类的所有成员,但并不表明友元函数和友元类属于该类的成员。
友元声明不受权限的限制,声明在哪一行都行。
友元用friend修饰,一般使用对象的别名作为参数
4. 类的嵌套
要有初始化列表,初始化顺序跟初始化列表无关,只于对象声明的顺序有关。
如果没有写,则调用默认的构造函数。
如:class C
{
private:
A a;
B b; // A,B 都是类名
public:
C(int a, int b, int c):a(a),b(b) {...}; // 调用 A(int i)构造方法初始化 a
}
2 0
- C/C++ 初学简单笔记 —2—
- C/C++ 初学简单笔记 —1—
- C/C++ 初学简单笔记 —6.1 — 多线程
- C/C++ 初学简单笔记 —6.2 — 多线程
- C/C++ 初学简单笔记 —2.1— 类的友元
- C/C++ 初学简单笔记 —3— 继承与派生
- C/C++ 初学简单笔记 —4— 多态性 虚函数和抽象类
- C/C++ 初学简单笔记 —4.1— 多态性 运算符重载
- C/C++ 初学简单笔记 —5— 文件I/O
- c初学笔记摘要
- 初学C#-----笔记一
- 初学C#-----笔记二
- pro*c初学2---简单多线程例子
- 初学c/c++——浅谈指针
- 初学c/c++——浅谈引用
- Mapx初学笔记(c#)
- 【初学】Objective-C学习笔记-Objectiv-C
- C语言初学2
- 使用github管理你的代码
- CS193p 2013 Fall Lecture 2 notes
- 驱动第二天
- JAVA八个基本数据类型
- 数据库加密技术总结
- C/C++ 初学简单笔记 —2—
- loading黑马程序员之IOFile(2-4)
- 驱动第三天
- 两个排好序的数组重新排序为一个新数组
- Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
- java.lang.OutOfMemoryError: PermGen space,Intellidea报内存溢出
- 修昔底德陷阱
- Java算法:根据输入的数字计算所有的回文数
- Nslookup命令的用法