首页 > 试题广场 >

关于下面 C++ 代码的执行结果说法正确的是() #incl

[不定项选择题]
关于下面 C++ 代码的执行结果说法正确的是()
#include <iostream>

class Test {
public:
    Test() = default;
    ~Test() {
        std::cout << "~Test" << std::endl;
    }
    void print1() {
        std::cout << "print1" << std::endl;
    }
    virtual void print2() {
        std::cout << "print2" << std::endl;
    }
};

int main() {
    {
        Test *t = nullptr;
        t->print1();
        t->print2();
    }
    std::cout << "I'm OK" << std::endl;
    return 0;
}
  • 程序输出中包含 ~Test
  • 程序使用空指针调用 print1,因此会崩溃
  • 程序使用空指针调用 print2,因此会崩溃
  • 如果将 virtual 去掉,那么程序就能正常执行
看不懂
发表于 2025-09-06 00:39:48 回复(0)
匪夷所思?
发表于 2025-08-12 18:13:14 回复(0)