第一章:第一节:先从整体上去认识C++,它带给了我们什么?

大部分人对C语言与C++的关系有不同的看法,有的人认为C++是C语言的一种升华,有的则认为他们是两种完全不同的语言。其实这个问题,我觉得较真是毫无意义的,因为每个人的水平能力不同认知就会不同,对于我个人来说,在刚开始学C++的时候,尤其是刚学到基于对象的时候,心里想“哦操,谁这完全是两种语言,C语言的思维压根用不上,一用就懵逼!”。当时脑袋转不过来,因为C语言的思维方式(顺序结构)根深蒂固,一开始有点排斥,可是知道我将C++基本学完,又有了新的认识,C++就是C语言的一个生化(个人观点),可能随着知识的深入,每个阶段都会有不同的感受,没必要较真。但是这个过程有必要存在,它标志着我对他有了新的认识,说明我在进步。

上面一段是我对C++的认知的一个变化。也是我对于C++整体认知的一个过程缩影。

 

一、整体得去认识一下C++

一提到C++我想大部分人会说的下一句话“面向对象语言”。当初我也在“面向对象”上犯了一个很大的错误,我以为我面对的所有C++语法都是面向对象,这导致了我从C语言转到C++时花费了好长时间,因为刚开始学没找到C++与C语言的区别,不都是面向过程么?这差点导致我放弃学C++。(以为自己智商真的不够用)还好没放弃。

诶!总结一下无非是瞎跟着别人的脚步走,别人说C++就是面向对象语言,我就说C++就是面向对象语言,(当初什么都不懂)。饶了很大一圈,可我并不认为这是一件坏事,能发现别人的说法中存在不足、漏洞,说明我自己是在思考在进步。

1、C++语言特性:三部分也是三个阶段

C++语言其实讲了语言的三种特性:(三部分)

1)面向过程

      C++是基于C语言而开发(还有一种语言),基于C语言也就是兼容C语言。所以我们在大部分参考书中可以看到,前几章基本上是在说C语言的知识,这也是为什么我们会说C++语言的第一个特性是面向过程(因为他是基于C语言开发的)。

2)基于对象

     学着学着我们会认识一个新的单词class,C++把它他叫做类。类的出现也预示着对象的出现

我们把不带有继承或多态的单一类的设计叫做基于对象设计。(这是我自己总结的)

很多人愿意将class和C语言中的struct作类比。但是这里一定要强调他们二者区别,其实我更喜欢将C++中的class定义为是C语言中的struct的一个升华。(二者有本质上的区别)语法上起码就不一样,我们要区分C语言中的struct和C++中的class和C++中的struct。

 C语言中struct与c++中的class和c++中的struct区别:

上图说明c++中的class完全可以和c++中的struct看做是一样的。 

1、C语言中struct与c++中的class区别:

 代码如下:

#include<stdio.h>

typedef struct 
{
	int num;  // 定义一个变量

	//试图像C++那样定义或声明一个函数
	void func(void);

	void func2(void)
	{

	}

	//定义一个函数指针
	int (*p)();

}student;

int main(void)
{

	return 0;
}

 

2、C++struct与c++中的class区别:

代码如下:

#include<iostream>

typedef struct 
{
	int num;  // 定义一个变量
}student;

class C
{
	int num;
};

int main(void)
{
	student stu1;
	stu1.num;   // 可以访问说明c++中的struct默认访问权限是public。

	C c1;
	c1.num;    // 说用c++中的class默认访问权限是private。
	return 0;
}

 

3)面向对象

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值