1. C++ VS C
封装性:把数据和数据操作组织在一起,程序结构紧凑,提高了类内部的数据安全性;
继承性:软件可扩充性和代码重用性;
多态性:设计程序时可以更好的对问题进行抽象,有利于代码的维护和可重用性;
2. 结构体—>>类
C语言中的结构体:
#include <iostream.h>
struct Point
{
int x;
int y;
};
void main()
{
Point pt;
pt.x=5;
pt.y=5;
cout<<pt.x<<endl<<pt.y<<endl;
}
C++中的结构体:
#include <iostream.h>
struct Point
{
int x;
int y;
void output()
{
cout<<x<<endl<<y<<endl;
}
};
void main()
{
Point pt;
pt.x=5;
pt.y=5;
pt.output();
}
C中结构体与C++中结构体区别:
在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数;
C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的;
C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数);
C++中的结构体和类体现了数据结构和算法的结合。
C++中的类:
#include <iostream.h>
class Point
{
public:
int x;
int y;
void output()
{
cout<<x<<endl<<y<<endl;
}
};
void main()
{
Point pt;
pt.x=5;
pt.y=5;
pt.output();
}
C++中的结构体和类的异同:
1. 相同之处:
结构体中可以包含函数;
也可以定义public、private、protected数据成员;
定义了结构体之后,可以用结构体名来创建对象。
2. 不同之处:
结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的;
类中的非static成员函数有this指针;
类的关键字class能作为template模板的关键字 即template<class T> class A{
}; 而struct不可以。
3. 类与对象
类:描述一类事物,以及事物所具有的属性,是一个抽象的概念;
对象:类的实例化、具体化,是一个具体事物描述;
4. 类的构造函数
构造函数:C++规定类的构造函数与类名相同,且没有返回值。构造函数的作用是对对象本身做初始化工作,也就是给用户提供初始化类中成员变量的一种方式。
如果一个类中没有定义任何的构造函数,C++的编译器会在一些情况下为该类提供一个默认的构造函数,这个默认的构造函数是一个不带参数的构造函数。只要一个类中定义了构造函数,不管这个构造函数是否为带参数的构造函数,C++编译器就不会再提供默认的构造函数。也就是说,如果为一个类定义了带参数的构造函数,还想要没有参数的构造函数,那就必须自己定义。
class Point
{
public:
int x;
int y;
Point() //Point的构造函数
{
x=0;
y=0;
}
void output()
{
cout<<x<<endl<<y<<endl;
}
void output(<