C++基础知识介绍
2018-01-18 16:01
246 查看
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++的三个重要的知识点:封装、继承、多态
程序 = 算法+数据结构
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++的三个重要的知识点:封装、继承、多态
相关文章推荐
- C++入门进阶之一: 基础知识介绍
- C++基础知识:C++ bitset
- C++基础知识部分之三
- JavaScript学习笔记(一)——JS基础知识介绍
- C++的基础知识
- cocos2d-x学习笔记(一)C++基础知识
- Java基础知识-循环语句的使用介绍(for、while、do-while)
- C++基础知识
- C++ 基础知识十
- C++基础知识复习--函数重载
- c++基础知识拾遗
- 中文编码基础知识介绍
- Java基础语法day01(Java开发环境搭建、HelloWorld案例、基础知识介绍)
- java基础知识介绍
- Java基础知识强化之网络编程笔记25:Android网络通信之 Future接口介绍(Java程序执行超时)
- PHP基础知识介绍
- C++基础知识(二)
- C++基础知识(2)--构造一个类的一般顺序
- Web开发基础知识的整理(一、Http协议的简单介绍)
- C++指针的基础介绍