C++基础(1)概述

1. C++简介

c++起初也叫”c with clsss”.通过名称表明,c++是对C的扩展,因此c++是c语言的超集,这意味着任何有效的c程序都是有效的c++程序。c++程序可以使用已有的c程序库。

库是编程模块的集合,可以在程序中调用它们。库对很多常见的编程问题提供了可靠的解决方法,因此可以节省程序员大量的时间和工作量。

c++融合了3种不同的编程方式:

  1. c语言代表的过程性语言.
  2. c++在c语言基础上添加的类代表的面向对象语言.
  3. c++模板支持的泛型编程。
    C语言和C++并不是对立的竞争关系:C++是C语言的扩展

C语言是面向过程的语言,C++是面向对象的语言。

2. C++初识

2.1 c++ hello world

#include<iostream>
using namespace std;

int main(){
   	
	cout << "hello world" << endl;
	return EXIT_SUCCESS;
}

输出hello world

  1. 其中iostream 是
    C++的标准输入输出库,并且在C++中导入库不在需要在结尾处添加.h,如果需要导入C语言库例如导入math.h头文件可以这样写
#include<cmath>
  1. using namespace std; namespace是指标识符的各种可见范围。命名空间用关键字namespace来定义。命名空间是C++的一种机制,用来把单个标识符下的大量有逻辑联系的程序实体组合到一起。此标识符作为此组群的名字。
  2. cout是c++中的标准输出流,endl是输出换行并刷新缓冲区。

2.2 面向对象和面向过程

2.2.1 面向过程

面向过程是一种以过程为中心的编程思想。通过分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向过程编程思想的核心:功能分解,自顶向下,逐层细化(程序=数据结构+算法)。

2.2.2 面向对象

面向对象编程(Object-Oriented Programming)简称 OOP 技术,是开发计算机应用程序的一种新方法、新思想。(现在并不新鲜了)
在面向对象中,算法与数据结构被看做是一个整体,称作对象,现实世界中任何类的对象都具有一定的属性和操作,也总能用数据结构与算法两者合一地来描述,所以可以用下面的等式来定义对象和程序:

对象 = 算法 + 数据结构
程序 = 对象 + 对象 + ……

2.2.3 面向对象的三个特性

  • 封装
  1. 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
  2. 类将成员变量和成员函数封装在类的内部,根据需要设置访问权限,通过成员函数管理内部状态。
  • 继承
  1. 继承所表达的是类之间相关的关系,这种关系使得对象可以继承另外一类对象的特征和能力。
  2. 继承的作用:避免公用代码的重复开发,减少代码和数据冗余。
  • 多态
  1. 多态性可以简单地概括为“一个接口,多种方法”,字面意思为多种形态。程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。

3.C++的扩展

3.1 ::作用域运算符

通常情况下,如果有两个同名变量,一个是全局变量,另一个是局部变量,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量。
作用域运算符可以用来解决局部变量与全局变量的重名问题 。

#include<iostream>//标准输入输出流
using namespace std;//namespace是指标识符的各种可见范围。命名空间用关键字namespace 来定义
int  a =10;//全局变量
int main01()
{
   
	//cout<<"hello world!"<<endl;
	int a = 20;//局部变量,在函数体内,局部变量比全局变量有更高的优先级
	//全局变量和局部变量使用,作用域命名符::
	cout<<a<<endl;//出书局部变量
	cout<<::a<<endl;//输出全局变量,使用::来定义使用的变量为全局变量
	return 0;
}

在这里插入图片描述

3.2 名字控制

C语言中通过static关键字来使得名字只得在本编译单元内可见,在c++中我们将通过一种通过命名空间来控制对名字的访问。

3.2.1命名空间(namespace)

由于在实际应用中C++中的名称冲突的可能性很大,所以为了防止标识符命名符的冲突,C++引入namespace更好地控制标识符的作用域,防止标识符冲突,同时也防止定义的名字的重复冲突。
示例:

#include<iostream>
using namespace std;
namespace A
{
   
	int a=30;
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值