博客内容:C++读取一行内个数不定的整数的方式
作 者:陈大大陈
个人简介:一个正在努力学技术的准前端,专注基础和实战分享 ,欢迎私信!
欢迎大家:这里是CSDN,我总结知识和写笔记的地方,喜欢的话请三连,有问题请私信
目录
对象是什么?
C语言和C++区别
CVSC++
什么是object-oriented
什么是对象,对象就是一个东西,那什么是东西呢?
对象可以是可见的,也能是不可见的,他可以是一句话,也可以是一个杯子。
在程序设计里,变量就是对象。变量有类型,决定了变量里面存什么,对象一样有类型。
不同的对象有不同的特性,里面有一些数据时被保护起来的,外面是一些操作。
我们可以通过这些操作或者说是服务来访问数据,却不能直接访问受保护的数据。
两者的关系如图所示。
面向过程和面向对象的区别在于 如何去描述,描述什么。
比如有一个人去菜市场买菜,如果用C语言来描述,就是按照时间顺序来描述事情发生的过程,买家张三买了一捆白菜,然后店主李四帮他称菜等等。
如果用C++来描述的话,就是描述事件中的对象,店主李四的吆喝传到张三的耳朵里,张三听到声音,他可能去买菜,也可能不去,这取决于白菜的价钱,说到白菜,又有了白菜的日期,产地,大小等等信息,C++就是描述对象以及对象间的关系。
从程序设计的角度来看的话,如果要设计一个打印三个整形的程序。
C语言来写的话是这样:
#define _CRT_SECURE_NO_WARNINGS
#include
typedef struct print3d
{
int x;
int y;
int z;
}Print3d;
void print3d_print(const Print3d* pd)
{
printf("%d %d %d\n", pd->x, pd->y, pd->z);
}
Print3d a;
int main()
{
a.x = 1, a.y = 2, a.z = 3;
print3d_print(&a);
return 0;
}
C++来写的话则是这样:
#define _CRT_SECURE_NO_WARNINGS
#include
using namespace std;
class print3d
{
public:
print3d(int a=1, int b=2, int c=3)
:_a(a)
,_b(b)
,_c(c)
{
}
void print()
{
cout << _a<<' ' << _b <<' ' << _c << endl;
}
private:
int _a;
int _b;
int _c;
};
int main()
{
print3d().print();
}
在C++的代码里,print3d()是一个匿名对象,我们要它来执行print这个操作。
我们看到,C语言的struct里面,只有数据
而C++的class里面,既有数据,也有操作。
C语言的代码,操作在结构体外面,所以要执行打印操作,需要传结构体的指针进去。
C++的代码,操作在结构体内部,所以当你要它做什么操作,对象自己就会操作,而不需要像C语言一样将对象的地址传到函数里面去。
总的来说,面向对象是一种方法,这种方法是用来组织设计和实现的。
组织设计就是找到解决问题的思路。
实现就是把代码写出来。
面向对象关键的核心在于,对象是组织和实现主要关注的东西,而不是过程。