有些问题可能会有不同的解释,所以我将在这里总结一下。但是请注意,其中一些解释实际上并不是同义词,而只是我对您的老师可能想说的话的想法。
1.在 main 函数的定义中声明一个具体类的对象。
看到这个问题:What is the difference between a concrete class and an abstract class?。
这表明实例化或声明一个具体类是有效的。 main 函数也不例外。
结论:this is valid.
2。在构造函数语句中写入输出语句。
通过constructor statement,我假设类或结构或类似内容的constructor function 是指。通常,我会说output statement 类似于写入控制台。然而,由于问题使用了一种奇怪的语言,人们可以说output 声明意味着return 声明。
输出,例如写入控制台,在构造函数中是完全合法的。
class Foo
{
public:
Foo()
{
std::cout << "I made a Foo\n";
}
}
输出,如从函数返回的东西,在构造函数中是不合法的。
class Foo
{
public:
Foo()
{
return 3; // not legal
}
}
结论:If this is valid or not depends on how you interpret the question.
3.声明具有至少一个虚函数的类的对象。
Virtual functions 类中的解释如下:C++ Virtual/Pure Virtual Explained。
问题很清楚,一个或多个虚函数是not pure virtual,所以:
结论:this is valid.
4.声明具有所有虚函数的类的对象。
有关virtual 和pure virtual 函数的解释,请参阅我对答案3 的解释。
这个答案的直接解释是:声明一个所有函数都是虚拟的类的对象是否合法?在这种情况下,该语句是有效的,请参见答案 3。
但是,您可以将all virtual functions 解释为pure virtual functions,在这种情况下实例化类是无效的。
结论:If this is valid or not depends on how you interpret the question.
最终结论
答案 1 和 3 都描述了有效的 C++。但是,答案2和4可以有多种解释,所以答案并不明确。
个人想法
我从未听说有人打电话给return statement 和output statement。我也没有听说有人打电话给pure virtual function 和all virtual function。我觉得你的老师很奇怪。