记录以防忘记
class base{
public:
........
};
class derive:public base{
public:
void test();
};
int
main(){
derive child;
base *father = &child;
father->test();//error
}
father->test()会报错。因为对于非virtual函数调用,在编译期就已经确定函数地址了,只要virtual函数调用才会触发动态调用。base类是没有test方法的,所以编译通不过。
分享到:
相关推荐
C++提供了动态内存分配,但忘记释放内存(内存泄漏)或过早释放(悬挂指针)都会导致严重问题。使用智能指针(如unique_ptr、shared_ptr和weak_ptr)可以自动化内存管理,但理解它们的工作原理和适用场景至关重要。...
在C++中,动态内存分配和释放不当可能导致内存泄漏,不恰当的使用多态可能导致类型转换错误。掌握C++的面向对象特性,并理解其背后的内存模型,可以帮助我们规避这些陷阱。 "连接"环节的问题主要出现在编译链接阶段...
C++程序设计陷阱pdf版,一本不错的参考书籍
1. **内存管理**:C++中的内存管理是陷阱的重灾区,包括动态内存分配、对象生命周期和悬挂指针等问题。书中强调了正确使用`new`和`delete`,避免内存泄漏,以及理解智能指针(如`std::unique_ptr`, `std::shared_ptr...
描述中提到的调试问题,是C++开发者常遇到的一个陷阱。在**调试模式**下,编译器通常会关闭或降低优化级别,以便更好地跟踪代码执行和变量状态。然而,这可能导致与**发布模式**(通常开启最高优化级别)下的行为不...
C++程序设计陷阱(C++Gotchas)
本书讨论了那些可能出现在所有C++代码中的基本错误,同样也详述了那些出现在C++语法、预处理、内存管理、多态性、类设计和类继承关系设计中可能出现的各种复杂错误。每一个错误和其所导致的错误结果将会结合错误发生...
C++程序设计陷阱(Stephen C.Dewhurst 著).pdf
《C++程序设计陷阱》是一本深入探讨C++编程中潜在问题的专业书籍,旨在帮助开发者避免常见的编程陷阱和误区。该书分为中英文两个版本,分别以PDF和CHM格式提供,为不同语言习惯的读者提供了便利。 1. **命名空间与...
C++ 程序设计陷阱(中文版 无加密)part1(共3部分)解压后可直接打开!
C++程序设计陷阱(Stephen C.Dewhurst 著)
《C++程序设计陷阱》是一本著名的编程书籍,作者通过一系列具体的例子揭示了C++编程中容易遇到的问题和陷阱。这些陷阱通常是由于语言的复杂性和隐含规则导致的,对初学者和经验丰富的开发者都具有很高的参考价值。...
“这可能是我所读过的关于C++的最好的书,我为通过这本书所学到的大量C++知识而惊奇,”Synesis Software公司的开发顾问Matthew Wilson如此评价着C++ Gotchas(由Pearson的Addison-Wesley出版)。