-5 c++ if-statement
这与之前的问题相同,但在描述那里的问题时我犯了很多错误.所以我再试一次.请原谅我的术语.这可能是错的.我是编程新手.
我有两个对象指针(我认为)A和B. 他们看起来有点像这样:
Class1* A = Blah->Method1();
Class2* B = A->Method2();
Run Code Online (Sandbox Code Playgroud)
我必须在执行一些代码之前检查这些是否存在.以下是条件:
这是我到目前为止的代码:
if (A){
/*some code here. B is created here */
if (B){
// Perform action1. Action1 always comes before Action2
// Perform action2
}
}
else{
//Perform action1
}
Run Code Online (Sandbox Code Playgroud)
这适用于4个案例中的3个.当A存在但B为空时失败.
我怎样才能改善这个?(如果可能的话,同时保持//Perform Action 1在最里面的if.其他建议也是受欢迎的.)
谢谢.
- A和B都存在:执行Action1和Action2
- 其中一个存在,其中一个为null:仅执行Action1
- 两者都为null:仅执行Action1
所以,真的,你想要:
action1();
if (a && b) {
action2();
}
Run Code Online (Sandbox Code Playgroud)
你的标准总是涉及调用action1; 它没有理由被一个人守卫if.然后,您调用action2如果两个a和b发现.