栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【学习笔记】C++再入门过程-1

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【学习笔记】C++再入门过程-1

c++概述

C++是面向对象的编程,同时也是一种泛型编程。
面向过程是一种以过程为中心的编程思想,通过分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向过程编程思想的核心:功能分解,自顶向下,逐层细化(程序=数据结构+算法)。面向过程的编程语言存在的主要缺点是不符合人的思维习惯,而是要用计算机的思维方式去处理问题,而且面向过程编程语言重用性低,维护困难。
面向对象的编程(Object-Oriented Programming)简称OOP技术,常常使用许多代码模块,每个模块都只提供特定的功能,它们是彼此独立的,这样就增大了代码重用的几率,更加有利于软件的开发、维护和升级。在面向对象的开发过程中,算法与数据结构倍看作是一个整体,称为对象梦想是世界中任何类的对象都具有一定的属性和操作,也总能用数据结构与算法两者合一地描述,所以可以用下面的等式来定义对象和程序:对象=算法+数据结构 程序=对象+对象+…
面向对象编程思想的核心:应对变化,提高复用。

c++的三大特性

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

c++对c的扩展 1.作用域运算::

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

// 作用域举例
int a=10;
void test(){
	//局部变量
	int a=20;
	//全局a被隐藏
	cout<<"a="<// 命名空间
namespace A{
	int data_1 = 10;
}
namespace B{
	int data_1 = 20;
}
void test(){
	cout<<"data_1"< 

2.3 注意
①命名空间只能在全局进行定义
②命名空间可以嵌套命名空间,A::B::变量
③命名空间是开放的,可以随时把新的成员加入已有的命名空间中

// ③
namespace A{
	int a = 10;
}
...//1000行之后
namespace A{
	int b = 9;
}//此时,A不算重新定义,而是表示空间A中新增了成员b,合并

2.4 声明和实现可以分离

// 分离
namespace B{
	int a = 10;
	int get_a(void);
}
int C::get_a(void){
	return a;
}//命名空间的方法可以在空间之外定义,但是需要在方法之前加上空间名称

2.5 无命名空间
意味着明明空间中的标识符只能在本文件中访问,相当于给这个标识符加上了static,使得其可以作为内部连接。
2.6 命名空间别名

// An highlighted block
namespace verylongname{
	int a = 10;
	void func(){ cout<<"hello namspace"<
	namespace shortName = verylongname;//赋值运算符
	cout << "verylongname::a:"< 

2.7 using是修饰 命令空间 内部的某些数据和方法

// An highlighted block
namespace D{
	int a =10;
}
void test04(){
	using D::a;//此处的a来自D命名空间
	//但是不排除会出现同名情况
	int a = 20;//此处又定义了一个a
	cout<<"a="< 

2.8 using声明碰到函数重载

// 体现了C++的多态性
namespace A{
	void func(){}
	void func(int x){}
	void func(int x, int y){}
}
void test(){
	using A::func();
	func();
	func(10);
	func(10,20);
}

如果命名空间包含一组相同名字重载的函数,using声明就声明可这个重载函数的所有集合。
2.9 using是修饰整个命名空间

// An highlighted block
namespace D {
	int a = 10;
	int b = 20;
	int c = 30;
}
void test(){
	using D::a;
	using D::b;
	using D::c;//太麻烦了,为了避免麻烦,采用下面方式直接声明整个命名空间
	using namespace D;//此处需要加namespace,强调命名空间,和2.7强调命名空间内的数据和方法不同,此处先查看当前普通变量a,如果没有,再查看命名空间中有没有a
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850151.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号