类的条件执行

Conditional execution of a Class

本文关键字:执行 条件      更新时间:2023-10-16

我是C++编程的新手。

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

如果有人能暗示我一个想法并说明如何进行,我们将不胜感激。

提前致谢

法典

类1.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;
    };

类2.h

class class2
{
public:
    class2()
    {
    };
    ~class2()
    {
    };
    int computation (int x)
    {
    do some calculations
    result=1;
    }
    return result;
    };

主.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;
}
int result = 0;
if(myclass1->calc(x,y,z))
   result = myclass2->computation(x);

请注意,使用 Class1 时,您将bool分配给int - 请确保您具有正确的类型分配。

只需使用一个简单的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.
}