C++学习笔记:基础知识

Keep going~

1.如何理解C++

C++在一开始只是C加上一些面向对象特性,它的名称也反映这一关系:C with Classes
今天C++已经是个多重范型编程语言(multiparadigm programming language),同时支持:

  • 过程形式(procedural)
  • 面对对象形式(object-oriented)
  • 函数形式(functional)
  • 泛型形式(generic)
  • 元编程形式(metaprogramming)

最简单的方法是将c++视为一个语言联邦。何谓联邦?就是其有多种语言组成而非单一语言。
将C++分解为几种主要次语言:

  1. C:
    具有局限:没有模板,没有异常,没有重载…….
  2. Object-Oriented C++:
    这部分即为C with Classes, 有:class, 封装, 继承,多态,虚函数……
  3. Template C++:
    泛型编程部分。
  4. STL:
    标准模板库,STL有自己特殊的办事方式。它对容器,迭代器,算法以及函数对象的规约有极佳的配合与协调。

需要记住彼此的特性,尤其在高效编程中,要注意彼此的协调和配合。

2.常用

2.1数组相关

数组名=数组第一个元素的地址

Array=&Array[0];

double *pa=Array;其中pa为地址,*pa表示该地址中的值。

Array[1]=*(Array+1)=*(pa+1);
pa[1]=*(pa+1);

注意array = array+1;无效,原因是数组名为常量。
同时需格外注意newdelete配套使用

int *psome = new int[n];
/**
...
**/
delete[] psome;

2.2字符相关

字符常量'S'是字符串编码的简写表示(ASCII)
字符串常量"S"表示两个字符(字符S\0)组成的字符串,"S"实际上表示的是字符串所在的内存地址。
strlen只计算可见的字符,不把空字符计算在内。

2.3输入相关

cin使用空白(制表符,换行符和空格)来确定字符串的结束位置。
面向行输入:getline()读取整行,通过回车键输入的换行符来确定输入结尾。其读取并丢弃换行符。

cin.getline(name,20);  //最多19个字符,最后一位用于存空字符(替换换行符)。

面对行输入:get()getline()的区别在于保留换行符在输入队列。

cin.get(name,20); 

在调用get()需要注意

cin.get(name,20); 
cin.get();  //或cin.get(name,20).get(); //get()目的是读取换行符, 避免其影响下一次的读取。
cin.get(dessert,20);

混合输入字符串和数字

(cin>>year).get(); //读取数字并丢弃换行符
cin.getline(address,20);

3.类相关

  • 抽象:把现实的对象属性转化成数据映射到类上
  • 方法:即函数
  • 封装:相当于一个盒子,知道干什么就好
  • 接口:共享框架,供两个系统交互时使用,基于封装,只留给用户使用的方法,这些方法就是接口

有关类的一些概念:

提供类声明
  通常,数据成员被放在私有部分中,成员函数被放在公有部分中(这一部分内容构成了设计的抽象部分—公有接口)。将数据封装到私有部分中可以保护数据的完整性,这被称为数据隐藏。
实现类成员函数
  通常单独提供函数定义(除非函数很小,利用内联),需要使用作用域解析符来指出成员函数属于哪个类,

char *Bozo::Retort() //利用作用域解析符, 函数定义

  类成员函数调用使用(通过类对象)成员运算符句点,

Bozo bozetta; //创建对象
cout<<bozetta.Retort();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值