1.下列程序输出
#include <iostream>
class Test {
public:
void test() {
std::cout << "No virtual test!" << std::endl;
}
virtual void test2() {
std::cout << "Virtual test!" << std::endl;
}
};
int main(int argc, char** atgv) {
Test *tp = NULL;
tp->test();
tp->test2();
return 0;
}
No virtual test!
// 解析:第二次调用未构造出对象,在0地址除不会有虚表指针,结果不会打印出字符串,其他情况未定义,无法走到后续流程。
2.预处理命令特点
①为了区别一般的语句,预处理命令行都必须以”#”号开始,结尾不加分号;