0

我是C++编程的新手。有条件地执行一个类

下面是具有两个班,class 1class 2这确实基于来自通过对象指针myclass1myclass2 .The代码工作正常,但现在我需要做出改变发送的主要功能值一些计算我的代码,即仅当class1calc函数返回true值时,class2及其成员函数computation应从主函数和算法运行中获取其值x。即如果class1返回true,则class 2运行else

如果有人能够提示我一个想法并说出如何继续,

在此先感谢

代码

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; 
} 
+4

请避免无用的新 –

+2

我不想脱落粗鲁,但我认为你需要去对C++的控制再次流动的基本知识。 – StoryTeller

+0

您明白'if'因为您在class1 :: clc()中使用了。在main()中也使用类似的东西。 –

回答

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

注意与Class1,你分配一个boolint - 确保你有适当的类型分配。

0

只需使用如果简单:

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. 
} 
+0

'myclass1-> calc(x,y,z);'实际上返回一个'bool'不是_result_。 –

+0

@πάνταῥεῖ你是对的,我只是复制粘贴他的代码。现在修复。 – RedX