C++面向对象程序设计入门:类的实现和使用

来源:互联网 发布:通达信源码论坛 编辑:程序博客网 时间:2024/06/05 22:37

在头文件中声明类,在源文件中实现类。
写一个运算的类:
setOperator函数设置运算符,setParameter函数设置运算参数,result函数得到运算结果。

//operator.h#ifndef OPERATOR_H_#define OPERATOR_H_class Operator{private:    char mOp;    double mP1;    double mP2;public:    bool setOperator(char op);    void setParameter(double p1,double p2);    bool result(double& r);};#endif//operator.cpp#include "operator.h"bool Operator::setOperator(char op){    bool ret = false;    if((op == '+') || (op == '-') || (op == '*') || (op == '/') || (op == '%'))    {        ret = true;        mOp = op;    }    else    {        mOp = '\0';    }    return ret;}void Operator::setParameter(double p1,double p2){    mP1 = p1;    mP2 = p2;}bool Operator::result(double& r){    bool ret = true;    switch(mOp)    {        case '/':            if((-0.000000001 < mP2) && (mP2 < 0.000000001))            {                ret = false;            }            else            {                r = mP1/mP2;            }            break;        case '%':            if((-0.000000001 < mP2) && (mP2 < 0.000000001))            {                ret = false;            }            else            {                r = (double)((int)mP1%(int)mP2);            }            break;        case '+':            r = mP1 + mP2;            break;        case '*':            r = mP1 * mP2;            break;        case '-':            r = mP1 - mP2;            break;        default:            ret = false;            break;    }    return ret;}//main.cpp#include <stdio.h>#include "operator.h"int main(){    Operator op;    double ret = 0;    op.setOperator('/');    op.setParameter(11,2);    if(op.result(ret))    {               printf("ret = %lf or ret = %d\n",ret,(int)ret);    }    else    {        printf("Calculate error!\n");    }    op.setOperator('%');    op.setParameter(11,2);    if(op.result(ret))    {               printf("ret = %d\n",(int)ret);    }    else    {        printf("Calculate error!\n");    }    op.setOperator('+');    op.setParameter(11,2);    if(op.result(ret))    {               printf("ret = %lf\n",ret);    }    return 0;}
原创粉丝点击