1、class成员默认私有、struct成员默认公有。
2、封装:讲东西包装隐藏起来,通过特定的形式访问,增加安全性和简化编程。
class Animal
{
public: //这就是公共成员,外部的接口
void SetAnimalName(string strname);
void ShowAnimalName();
private: //这是私有成员,外部是无法访问到的
string m_strName;
};
多态:以相同的方式处理不同类型的对象,允许将子类类型的指针赋值给父类类型的指针,多态性在C++中是通过虚函数实现的。虚函数就是允许被其子类重新定义的成员函数。而子类重新定义父类虚函数的做法被称为重写或覆盖。子类重写父类的虚函数时,即使不用virtual声明,该函数也是虚函数。
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
using namespace std;
class Father
{
public:
void Face()
{
cout << "Father's face" << endl;
}
virtual void Say()
{
cout << "Father say hello" << endl;
}
};
class Son:public Father
{
public:
void Say()
{
cout << "Son say hello" << endl;
}
};
void main()
{
Son son;
Father *pFather=&son; // 隐式类型转换
pFather->Say();
}
继承:继承可以使得子类具有父类的各种属性和方法,还可以重新定义某些属性,并重写某些方法,
3、float 精度 小数点前后一共6位。如:0.000001 double精度 小数点前后一共16位。
比较
用"=="来比较两个double应该相等的类型,返回真值完全是不确定的。计算机对浮点数的进行计算的原理是只保证必要精度内正确即可。
我们在判断浮点数相等时,推荐用范围来确定,若x在某一范围内,我们就认为相等,至于范围怎么定义,要看实际情况而已了,float,和double 各有不同
所以const float EPSINON = 0.00001;
if((x >= - EPSINON) && (x <= EPSINON) 这样判断是可取的至于为什么取0.00001,可以自己按实际情况定义。
也可以 abs(x) <= EPSINON
比如要判断浮点数floatA和B是否相等,我们先令float x = A –B ;
并设constfloat EPSINON = 0.00001; 则
if ((x >= - EPSINON)&& (x <= EPSINON);//或者if(abs(x) <= EPSINON)
cout<<”A 与B相等<<endl;
else
cout<<”不相等”<<endl;
根据上面分析建议在系统开发过程中设计到字符转换建议