多年前学的C++,当时不努力。发现应聘起来人家就考这些。偏偏脑子里面记得的struct全是C语言里面的知识点。为了对的起大学里面的学费,咱又得重新看一下书。结果却发现C++中的结构体和C里面的很不一样,C++改进了很多。
面向对象
首先C++是美国贝尔实验室的博士在C的语言上弥补了C的一些缺陷,曾加了面向对象的特征,于1980年开发出来的一种过程性与对象性结合的程序设计语言。从这句课本上的定义我们来看:C++是一门面向对象的语言,因此我们才会在C++中接触到了类。因为C++的面向对象所以C++结构体也做到了面向对象,也就是说结构体和类在C++中是很相似的。我们来看下面的代码
struct realmath{
double real;
double realcomplex()
{
return real;
}
};
这段代码在VC编译器中是完全没有问题(不信的可以试试)。也就是说和C语言相比较言,C++中的结构体能够添加函数方法。(C语言可以用函数指针我们就不讨论这函数指针算不算函数了)。那么好吧既然它能实现面向对象,那么我们来看看面向对象的特性:一封装,二继承,三多态。首先封装和继承我们就一起来考虑吧。
结构体和类的比较
我们用结构体和类来实现简单的数学复数功能,当然考虑到了继承我们先写一个实数,然后复数继承自实数,代码如下:
struct realmath{
double real;
double realcomplex()
{
return real;
}
};
struct complex:realmath{
double imag;
complex(double r,double i)
{
real=r;
imag=i;
}
void init(double r,double i)
{
real=r;imag=i;
}
abscomplex()
{
double answer;
answer = real*real-imag*imag;
return s