您的位置:首页 > 编程语言 > C语言/C++

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

2017-06-25 11:42 309 查看
在头文件中声明类,在源文件中实现类。

写一个运算的类:

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ class
相关文章推荐