嗨,我正在尝试执行以下操作。
如果从cmd行传递了一些变量,即
const char * outputtype1
const char * outputtype2
后者可以为NULL。
然后,如果在命令行中设置了outputtype2,我想创建一个类的实例。如何使此类的实例可选。即
if(outputtype2)
{
cats thomas(outputtype2);
}
我以后再用
thomas.eatfood(whiskers);
这是令人不安的地方。如果outputtype2为null,显然不存在托马斯,但是为什么我不能这样做呢?
if (outputtype2)
{
cats thomas(outputtype2);
}
没有错误
在此范围内未声明“托马斯”。我担心这里缺少一些基本规则。
最佳答案
如果我理解您的问题,那么问题是您在if范围内创建了该类的实例。稍后,您尝试调用对象thomas的eatfood方法,但是该对象在当前作用域中不存在。
也许您想这样做...
if (outputtype2) {
cats thomas(outputtype1);
thomas.eatfood(whiskers);
}
或使用指针...
Cats* thomas = NULL;
if (outputtype2) {
thomas = new Cats(outputtype1);
}
if (thomas != NULL) {
thomas->eatfood(whiskers);
}