C++入门进阶之3: 类和对象
2012-09-17 01:55
197 查看
1. 面向对象的四个主要特征: 抽象, 封装, 继承,多态
2. 与普通的函数不同, 类的成员函数需要在实现的时候使用类名来限制,例如:
void Car: getPrice()
{
//......
}
3.类成员的三种访问权限: public — 公有类型 private -私有类型 protected-保护类型
私有成员只能被本类的成员函数访问,来自类外部的任何访问都是非法的
保护类型成员可以被本类和其子类访问到
4. 类的成员函数
内联成员函数: 类中有比较简单而且被经常使用的代码,就定义为内联成员函数。
5. 对象: 对象的存储空间中只是用于存放数据成员, 函数成员不会存放在对象的存储空间之中。
6. 对象的建立过程: 在程序执行过程中,当遇到对象声明语句时,程序会向操作系统申请一定的内存空间用于存放新建的对象。
7. 构造函数: 在对象被创建时利用特定的值构造对象,将对象初始化为一定的状态。
构造函数的特点: a. 构造函数的函数名和类名相同 ,而且没有返回值 b. 构造函数一般被声明为公有函数
构造函数在对象被创建时,被自动调用
如果类中没有写构造函数,编译器会自动生成一个默认的构造函数。没有形参,也不做任何事情。
8. 拷贝构造函数: 是一种特殊的构造函数,具有一般构造函数的所有特性,其形参是本类的对象的引用。 其作用是使用一个已经存在的对象,去初始化同类的另外一个对象
如果没有主动定义类的拷贝构造函数,那么系统会在必要时自动生成一个默认的拷贝构造函数,默认的拷贝构造函数会把初始值对象的每个数据成员的值都复制到新的对象之中。
9. 普通的构造函数是在对象创建时被调用, 而拷贝构造函数在以下三种情况下被调用:
a. 当用一个类的对象去初始化另外一个类的对象时
b. 如果函数的形参是类的对象,则在函数被调用, 实参和形参结合时
c. 如果函数的返回值是对象,则在函数被调用,返回时
10. 析构函数: 在对象的生命周期即将结束时,被自动调用.
析构函数的名称由类名前面加~构成,没有返回值,而且不接受任何参数。
11. 组合类: 创建一个组合类对象时,不仅它自身的构造函数被调用,而且还将调用其内嵌对象的构造函数,调用顺序是:
a. 调用内嵌对象的构造函数, 调用顺序按照内嵌对象在组合类的声明中出现的次序
b. 执行本类构造函数的函数体
析构函数的调用执行顺序与构造函数刚好相反。
12. 前向引用声明: 是在引用未声明的类之前,将该类的名字告诉编译器,使编译器知道那是一个类名。
class B;
class A
{
public:
void Func(B b);
}
2. 与普通的函数不同, 类的成员函数需要在实现的时候使用类名来限制,例如:
void Car: getPrice()
{
//......
}
3.类成员的三种访问权限: public — 公有类型 private -私有类型 protected-保护类型
私有成员只能被本类的成员函数访问,来自类外部的任何访问都是非法的
保护类型成员可以被本类和其子类访问到
4. 类的成员函数
内联成员函数: 类中有比较简单而且被经常使用的代码,就定义为内联成员函数。
5. 对象: 对象的存储空间中只是用于存放数据成员, 函数成员不会存放在对象的存储空间之中。
6. 对象的建立过程: 在程序执行过程中,当遇到对象声明语句时,程序会向操作系统申请一定的内存空间用于存放新建的对象。
7. 构造函数: 在对象被创建时利用特定的值构造对象,将对象初始化为一定的状态。
构造函数的特点: a. 构造函数的函数名和类名相同 ,而且没有返回值 b. 构造函数一般被声明为公有函数
构造函数在对象被创建时,被自动调用
如果类中没有写构造函数,编译器会自动生成一个默认的构造函数。没有形参,也不做任何事情。
8. 拷贝构造函数: 是一种特殊的构造函数,具有一般构造函数的所有特性,其形参是本类的对象的引用。 其作用是使用一个已经存在的对象,去初始化同类的另外一个对象
如果没有主动定义类的拷贝构造函数,那么系统会在必要时自动生成一个默认的拷贝构造函数,默认的拷贝构造函数会把初始值对象的每个数据成员的值都复制到新的对象之中。
9. 普通的构造函数是在对象创建时被调用, 而拷贝构造函数在以下三种情况下被调用:
a. 当用一个类的对象去初始化另外一个类的对象时
b. 如果函数的形参是类的对象,则在函数被调用, 实参和形参结合时
c. 如果函数的返回值是对象,则在函数被调用,返回时
10. 析构函数: 在对象的生命周期即将结束时,被自动调用.
析构函数的名称由类名前面加~构成,没有返回值,而且不接受任何参数。
11. 组合类: 创建一个组合类对象时,不仅它自身的构造函数被调用,而且还将调用其内嵌对象的构造函数,调用顺序是:
a. 调用内嵌对象的构造函数, 调用顺序按照内嵌对象在组合类的声明中出现的次序
b. 执行本类构造函数的函数体
析构函数的调用执行顺序与构造函数刚好相反。
12. 前向引用声明: 是在引用未声明的类之前,将该类的名字告诉编译器,使编译器知道那是一个类名。
class B;
class A
{
public:
void Func(B b);
}
相关文章推荐
- C++入门进阶之3: 类和对象
- 2.[个人]C++线程入门到进阶(2)----线程同步之信号量(semaphore)
- 16.[个人]C++线程入门到进阶(16)----线程函数:CreateThread与_beginthread
- 24.[个人]C++线程入门到进阶(24)----线程函数:GetCurrentThread
- c/c++进阶之爱恨交织的临时对象:一、出生和死亡
- c++入门(类和对象and继承for系统时间显示)
- C++对象内存布局2---进阶篇-----C++ 对象的内存布局(下)
- ASP编程入门进阶(七):内置对象Server
- ASP编程入门进阶(八):内置对象Session
- 3.[个人]C++线程入门到进阶(3)----线程同步之关键段CS 与临界区
- 17.[个人]C++线程入门到进阶(17)----关键段,事件,互斥量,信号量的“遗留”问题
- ASP编程入门进阶(九):内置对象Application
- Google V8 编程入门(三) - 使用js访问c++宿主对象
- 【2016/3】C++ 类与对象进阶 运算符重载 new delete 模板 继承
- c++入门学习笔记--类和对象
- C++ 60分钟入门教程 - 6、C++类与对象
- C++入门进阶之4: C++程序结构
- ASP编程入门进阶(八):内置对象Session
- ASP编程入门进阶(九):内置对象Application
- 4.[个人]C++线程入门到进阶(4)----线程同步之事件Event