有条件地执行一个类

时间:2014-04-23 14:48:17

标签: c++ function-pointers new-operator conditional-statements

我是C ++编程的新手。

下面是我的代码,它有两个类class 1class 2,它们根据通过对象指针myclass1myclass2发送的main函数的值进行一些计算。代码工作正常,但现在我需要进行更改,仅当calc的函数class1返回true值时,class2及其成员函数computation应从主函数和算法运行中获取其值x。即如果class1返回true,则class 2运行No。

如果有人能暗示我一个想法并说明如何继续下去,我将不胜感激。

提前致谢

代码

class1.h

class class1
{
public:
    class1()
    {
    };
    ~class1()
    {
    };

    bool calc(int a, int b, int c)
    {
    if (some condition){ // returns true or false based on some condition
    result=true;
    }
    else{
    result=false;
    }

    return result;
    };

class2.h

class class2
{
public:
    class2()
    {
    };
    ~class2()
    {
    };

    int computation (int x)
    {
    do some calculations
    result=1;
    }
    return result;
    };

的main.cpp

#include "class1.h"
#include "class2.h"

using namespace std;

int main(int argc, char * argv[])

class1* myclass1 = new class1();
class2* myclass2 = new class2();

int x=0.5, y=0.7, z=0.9;


int result1 = myclass1->calc(x,y,z);

int result2 = myclass2-> computation(x); // should be assigned or activated only when result1 is true.

return 0;
}

2 个答案:

答案 0 :(得分:2)

int result = 0;
if(myclass1->calc(x,y,z))
   result = myclass2->computation(x);

请注意,对于Class1,您要为bool分配int - 请确保您拥有正确的类型分配。

答案 1 :(得分:0)

只需使用简单的if:

bool result1 = myclass1->calc(x,y,z);
int result2 = -1; // -1 means not computed in this case

if(result1){
  result2 = myclass2-> computation(x); // should be assigned or activated only when result1 is true.
}