C++自学第一天--C++简介
C++自学第一天
1、C++简介
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程,是一种面向对象的程序设计语言。(在我的理解中,面向过程的语言只能面向过程编程,而面向对象的语言既可以面向过程,又可以面向对象编程。而这里又出了泛型编程,我需要对1、面向过程编程、面向对象编程、泛型编程这里进行精细化总结;2、还需要总结一下学过的java、python、C++、vb.net这些语言和另一些未学过的编程语言的类型,到底是面向对象还是面向过程)
C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。(中级语言和高级语言的区别是什么?)
C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。(要认真了解一下这个大神Bjarne Stroustrup)
C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
(过程化程序设计和基于对象的程序设计是什么?和面向过程、面向对象不一样吗?)
2、编写c++启动(调试)与开始运行不调试的区别
// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单
开始运行是指以调试模式执行,如果设置了断点,会运行到断点处暂停,方便程序员进行调试。
开始运行不调试是指以执行模式运行,会完整执行编译生成的那个可执行文件,即使程序中设置了断点,也不会暂停,适合于运行程序直接观察最终运行效果。
3、老规矩,Hello World!
#include <iostream>
int main()
{
//std::cout << "Hello World!\n";
std::cout << "Hello World" << std::endl;
}
(完全不能理解 #include <iostream 、 std::cout 等语句)
4、面向对象程序设计
C++ 完全支持面向对象的程序设计,包括面向对象开发的三大特性:
4.1、封装:
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。
4.2、继承(和重写):
在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。(这里需要仔细分析 java 的override和overload,不知道java和C++是否一样 )
1、重写(Override)是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
2、重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
最常用的地方就是构造器的重载。)
重写的好处在于子类可以根据需要,定义特定于自己的行为。
也就是说子类能够根据需要实现父类的方法。
4.3、多态:
采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。
继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。
5、标准库
标准的 C++ 由三个重要部分组成:
核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
标准模板库(STL),提供了大量的方法,用于操作数据结构等。
(这里不是很懂)
6、ANSI 标准
ANSI 标准是为了确保 C++ 的便携性 —— 您所编写的代码在 Mac、UNIX、Windows、Alpha 计算机上都能通过编译。(如何确保 C++ 的便携性,实现方式?)
由于 ANSI 标准已稳定使用了很长的时间,所有主要的 C++ 编译器的制造商都支持 ANSI 标准。
7、C++ 的使用
基本上每个应用程序领域的程序员都有使用 C++。
C++ 通常用于编写设备驱动程序和其他要求实时性的直接操作硬件的软件。
C++ 广泛用于教学和研究。
任何一个使用苹果电脑或 Windows PC 机的用户都在间接地使用 C++,因为这些系统的主要用户接口是使用 C++ 编写的。
(在这里我还需要深挖,了解C++的用处)
8、 C++标准化
9、标识符(补充)
(标识符对我来说是一个新的名词,很容易混淆)
标识符也就是变量、函数、类的名字,用于标识不同的对象。和大多数编程语言一样,C++的标识符需要以字母或下划线开头,有数组、字母和下划线组成,而且对大小写敏感。
规则:
- 标识符由字母、数字、下划线“_”组成。
- 不能把C++关键字作为标识符。
- 标识符长度限制32字符。
- 标识符对大小写敏感。
- 首字符只能是字母或下划线,不能是数字。
我是通过菜鸟教程和百度百科来学习的(不好意思说参考,大多数都是照搬,本博客只用作学习,无商业用途,如有侵权,请马上联系我,我速删)
菜鸟教程
百度百科–C++