您的位置:首页 > 编程语言 > C语言/C++

C++基础知识介绍

2018-01-18 16:01 190 查看
C语言:面向过程编程
程序 = 算法+数据结构

C++:面向对象编程:OOP object oriented programming
在现实世界中的对象:
--万物皆对象
--可以是有形的,也可是无形的
--构成现实世界的独立单位,具有静态的特征和动态的特征
面向对象方法中的对象:
--是系统用来描述客观事物的一个实体,它是用来构成系统的一个基本单位
对象由一组属性和行为组成
属性:用来描述对象的静态特征的数据项
行为:用来描述对象的动态特征的操作代码(方法)

类:
分类
分类的依据----抽象
忽略事件的本质特征,只注意那些与当前目标有关的本质特征
从而找出事物的共性,把具有共同特性的事物划分为一类,得出一个抽象的概念。
鱼、鸟、人、电脑...

面向对象方法中的类:
---具有相同属性和行为的一组对象的集合
---为属于该类的全部对象提供了抽象的描述,包括属性和行为
---就是我们自己定义的类型

类和对象的关系:
对象是具体存在的
类是抽象的
对象是类的一个具体实例

类就是自定义类型
对象就是类 类型的变量

结构体与类区别:
在默认情况下,结构的成员都是公有的
在默认情况下,类的成员都是私有的

访问修饰符:
private: 私有的 只能在类的内部访问,在类的外部不能直接访问
public: 公有的 任何地方都可以访问
protected: 受保护的 只能在类的内部访问,在类的外部不能直接访问,但其子类可以直接访问
类的一般形式:
class 类名
{
private:
//私有成员
public:
//公有成员
protected:
//受保护成员
};

类的结构成员
1.构造函数
构造函数用于对象的初始化
是类的特殊的成员函数
构造函数的名称与类名一样
构造函数在创建对象时自动调用
构造函数没有返回类型,可以有参数,遵循普通函数的那种重载规则
构造函数一定会调用且只调用一次

如果一个类中没有显示的声明构造函数,编译器会自动生成一个默认的构造函数
如果显示声明了默认构造函数或带参的构造函数,编译器不会再生成构造函数

class Circle
{
public:
Circle()//默认构造函数
{

}
Circle(double r)//带参的构造函数
{

}

Circle(Circle&c)//拷贝构造函数
{

}

~Circle()//析构函数
{

}
};

2.析构函数
构造函数用于对象的清理工作,如内存回收
也是类的特殊的成员函数
析构函数的名称  在类名前加一个~符号
析构函数没有返回类型,同时也没有参数,即不能重载
在对象被销毁时,自动调用
如果一个类中没有显示的声明析构函数,编译器会自动生成一个析构函数,函数体为空

3.对象的创建和销毁
1.在栈中创建单个对象
a.类名 对象名(参数列表);
b.类名 对象名 = 构造函数(参数列表);

2.在栈中创建对象数组
int arr[3];
类名 对象数组名[元素个数];

3.在堆中创建单个对象
类名 对象指针 = new 构造函数(参数列表);
delete 对象数指针;
对象数指针 = NULL;

4.在堆中创建对象数组
类名 对象指针 = new 类名[元素个数]{构造函数(参数列表),...}

注:给在堆中分配的数组初始化操作需要C++11标准支持

delete []对象指针;

4.初始化列表
语法格式:
构造函数(参数列表):要初始化的成员(初值),...
{}

建议使用初始化列表去初始化对象

5.拷贝构造函数
拷贝构造函数的参数是本类类型的引用

当类中没有显示去定义拷贝构造函数时,编译器会自动生成一个,自动生成的拷贝构造函数给成员变量进行简单的值复制
即浅拷贝

C++的三个重要的知识点:封装、继承、多态
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: