C++语言学习笔记(随笔)

C++笔记 01

学习C++的记录

C++基础

只是C++的基本介绍
学习笔记以 *.cpp源文件注释的形式记录。

概念

基本术语

程序设计过程

字符

字符集
词法记号
变量
符号常量
运算符与表达式

显式类型转换

语句

其它控制语句

函数

声明
定义
调用

//概念
/*
什么是面向对象的方法?
首先,它将数据及对数据的操作方法放在一起,作为对象整体。对同类型对象抽象出其共性,形成类。类中的大多数数据只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信

面向对象的基本概念:
对象:是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。对象由一组属性和一组行为构成。
	属性:是用来描述对象静态特征的数据项。
	行为:是用来描述对象动态特征的操作序列。
类:是具有相同属性和服务的一组对象的集合。一个属于某类的对象称为该类的一个实例。
封装:是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。
继承:特殊类的对象拥有其一般类的全部属性与服务,称做特殊类对一般类的继承。
多态性:多态性是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。

面向对象的软件工程是面向对象方法在软件工程领域的全面应用。包括:面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)和面向对象的软件维护(OOSM)等主要内容。

基本术语:
	源程序:用源语言编写、有待翻译的程序
	目标程序:源程序通过翻译加工以后生成的程序。可以是机器语言(因此也被称为"目标代码"),也可以是汇编语言或其他中间语言表示
	翻译程序:指用来把源程序翻译为目标程序的程序,翻译程序有3种不同类型:
		汇编程序:把用汇编语言写成的源程序翻译成机器语言形式的目标程序
		编译程序:若源程序是用高级程序设计语言所写,经翻译程序加工生成目标程序,那么该翻译程序就成为"编译程序"
		解释程序:同样是将高级语言源程序翻译成机器指令。但它是边翻译边执行的,输入一句,翻译一句,执行一句。解释程序不产生整个的目标程序,对源程序中要重复执行的语句需要重复的解释执行。

完整的程序过程:
	开始->程序设计->程序编辑(*.cpp)->程序编译(*.obj)->通过?(语法错)->程序连接(*.exe)(连接错)->程序运行->正确?->结束
*/
//字符
/*字符集:
	英文字母,数字字符
	特殊字符:!#^&*_+=-~<>/\'";.:?(){}[]
词法记号(最小的词法单元):
	1.关键字:
		asm		auto	bool	break	case 
		catch	char	class	const	const_cast
		continue default delete	do		double
		dynamic_cast	else	enum	explicit
		export	extern	false	float	for 
		friend	goto	if		inline	int 
		long	mutable	namespace new	operator
		private	protected public register
		reinterpret_cast return	short	signed
		sizeof	statlc	static_cast		struct
		switch	template this	throw	true
		try		typedef	typeid	typename union
		unsigned using	virtual	void	volatile
		wchar_t	while
	2.标识符:
	3.文字:直接使用符号表示的数据,包括数字、字符、字符串和布尔文字
	4.操作符(运算符):
	5.分隔符:分隔各个词法记号或程序正文,() {} , ; :
	6.空白:空白是空格】制表符、垂直制表符、换行符】回车符和注释的总称

变量:先声明类型和名称,还可以确定储存类型:
	auto采用堆栈方式分配内存空间,属于暂时性存储。
	register存放于通用寄存器中
	extern在所有函数和程序段中都可以引用
	static在内存中以固定地址存放,在整个程序运行期间有效
符号常量:使用前先声明并声明时赋值。
	const 数据类型说明符 常量名=常量值;
运算符与表达式:
	注意&& || 运算符先判断第一个操作数,成立时再判断第二个操作数。
显式类型转换:
	类型说明符 (表达式)
	(类型说明符) 表达式
	const_cast<类型说明符>(表达式)
	dynamic_cast<类型说明符>(表达式)
	reinterpret_cast<类型说明符>(表达式)
	static<类型说明符>(表达式)
语句:空语句、声明语句、表达式语句、选择语句、循环语句、跳转语句、复合语句、标号语句		
*/
//语句
/*
if(表达式) 语句1
else 语句2

switch(表达式){
	case 常量表达式1 : 语句1
	case 常量表达式2 : 语句2
	default: 语句n
}//case 是入口标号,进入后顺序执行

while(表达式) 语句

do 语句
while(表达式)

for(;;){}

其他控制语句:
	break 跳出循环体和switch
	continue 结束本次循环开始判断是否进行下次循环
	goto goto 语句标号 其中"语句标号"是用来表示语句的标识符,放在语句最前面并用:与语句分开。方便直接跳出多重循环

自定义数据类型:
typedef 已有数据类型 新类型名表;
enum 枚举类型名 {变量值列表}//若要赋值应使用强制转换

*/
//函数
/*
函数的定义:
类型说明符 函数名(含有类型说明符的形式参数){语句序列}
函数原型声明:
类型说明符 函数名(含类型说明符的形参表);只是告知编译器,并不产生任何代码

函数的调用:
嵌套调用
递归调用

函数的参数传递:
值传递
引用传递

引用:声明时初始化,不能指向其它对象
内联函数:内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处.inline 只是一个建议
带默认形参值的函数:相同作用域中,不允许对同一个参数的默认值重复定义

函数重载
两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同
编译器根据形参和形参类型及个数的最佳匹配,自动确定调用哪个函数.

系统函数

*/
//栈
/*暂略*
一般意义上的栈是一种数据结构, 它是一种能容纳很多数据的容器, 但数据进入和退出这个容器的顺序, 要满足一定的要求.
函数的形参和局部变量可以用栈存储, 这种栈叫做运行栈
运行栈中的数据分为一个一个栈帧, 每个栈帧对应一次函数调用, 栈帧中包括这次函数调用中的形参值\一些控制信息\局部变量值和一些临时数据(例如复杂表达式计算的中间值\某些函数的返回值)
*/
//示例源码
#include<iostream>
using namespace std;

class Greeting {
public:
	void say() {
		cout << Hello << endl;
		return;
	}
private:
	char Hello[16] = "hello world!!!";
};

int main() {
	Greeting Amy;
	Amy.say();
	return 0;
}

学习《C++语言程序设计》郑莉,董渊,何江舟编著

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值