面向对象程序设计之从C到C++的初步了解

1. C++语言

1. C++的发展 

C++是从C语言发展演变而来的,首先是一个更好的C引入了类的机制,最初的C++被称为“带类的C”1983年正式取名为C++
从1989年开始C++语言的标准化工作
于1994年制定了ANSIC++标准草案
于1998年11月被国际标准化组织(ISO)批准为国际标准,成为目前的C++
 

2.C++的特点
(1)C++保持与C兼容
(2)用C++编写的程序可读性更好,代码结构更为合理,可直接地在程序中映射问题空间的结构。
(3)生成代码的质量高,运行效率仅比汇编语言代码段慢10%到20%。
(4)从开发时间、费用到形成的软件的可重用性、可扩充性可维护性和可靠性等方面有了很大的提高,使得大中型的程序开发项目变得容易的多。支持面向对象的机制,可方便地构造出模拟现实问题的实体和操作。

2. C++程序的结构

 

3. C++程序编辑、编译和运行

C++程序的编辑、编译和运行C++源程序文件扩展名为.CPP
支持鲲鹏、Intel、高通等主流CPU机器
在Windows下,我们常用Visual C和VS开发环境来编辑、编译和运行C++程序。
在Linux下,vim编辑器,GCC编译器等
在Andoid下,C++Compile编译器等 

4. C++在C上的扩充

从C到C++的扩充(面向过程方面)
1. 注释行C++的输入输出
2. 灵活的局部变量说明
3. const修饰符
4. 内联函数
5. 带有默认参数的函数
6. 函数的重载
7. 作用域运算符
8. 运算符new和delete
9. 引用 

1. C++输入输出流
C++数据的输入与输出是通过I/O流来实现的,I/O流输入或输出的是一系列字节。
使用插入符“<<”向cout输出流中插入字符使用提取操作符  “>>”从cin输入流中抽取字符

#include<iostream>
using namespace std;

int main()
{
     int i = 0;
     cout<<i;
     cin>>i;
     return 0;
}

2. 用const取代#define

C++建议,用const取代无参宏定义,消除了宏的不安全性。关于 const 的更多知识可以移步到相关文章:C语言: 关于const操作的简单理解

#include<iostream>
using namespace std;
int main()
{
     int a=l;
     const Tl=a+a;
     const T2=T1-T1;
     cout <<"T2 is"<<T2<<endl;
     return O; 
}
//输出:T2 is 0

3. 内联函数
声明时使用关键字: inline.
编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销。

注意:

内联函数体内不能有循环语句和switch语句;
使用内联函数是一种空间换时间的措施;

内联函数在第一次被使用之前必须进行声明或定义;
内联函数具有宏定义#define相同的作用和相似的机理,但消除了#define的不安全因素。

4. 带有缺省参数值的函数
C++允许函数的实参与形参个数不同.方法是: 在说明函数原型时(若没有说明函数原型,则应在函数定义时说明)为形参制定缺省值.调用时如给出实参,则采用实参值,否则采用预先给出的缺省形参值。 例如下图:

注意:
在函数原型中,所有参数从右向左缺省

int add(int x,int y=5,int z=6);//正确

int add(int x=1,int y=5,int z);//错误

int add(int x=1,int yint z=6);//错误

在函数调用时,若某个参数省略,则其后的参数皆应省略而采用缺省值。
init(20);  //正确
init( ,20); //错误
声明中给出了缺省值,定义中不要给出缺省值 

5. 作用域标识符::
两个同名变量, 一个是全局的,另一个是局部的,可用作用域标识符::表示引用全局变量 

#include<iostream>
using namespace std;
int aver;
int main()
{
     int avar;
     aver = 25;
     ::aver = 10;
     //局部变量avar
     //全局变量avar::avar=10:
     cout<<"local avar ="<<avar<<endl:
     cout<<"global avar ="<<::avar<<endl:
     return 0;
}

7. 引用
引用的概念
引用通常被认为是某个变量的别名,声明一个引用的格式如下下:
类型 & 引用名 = 已定义的变量名

int i = 5;
int &j = i;

//这里的i,j共用同一内存

注意:
引用除了用作函数的参数或返回类型外,在声明引用时必须立即对它进行初始化
引用不可重新赋值>
并不是任何类型的数据都可以引用,下列情形的引用声明都是非法的:
- 不允许对void进行引用
- 不能建立引用的数组
- 不能建立引用的引用
- 引用不能用类型来初始化
- 没有空引用 

小结:

1. C++引入const的使用,指针分为常量指针和指针变量,C++完全保留了C指针变量的一些特性。
2. C++允许把频繁调用的小代码函数指定为内联函数来提高执行速度,但这是用空间(程序容量)来换取时间(执行速度)
3. 带有缺省参数值的函数在类的构造函数中如果使用不当,会导致程序的二义性问题。
4. 引用是C++新增加的,是被引用变量的一个别名,主要用于调用函数时传递参数和返回值,采用地址传递方式。

  • 32
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值