C++语言程序设计

数据与处理数据的方法（函数）相分离。这使得对函数的理解变得很难。许多重要的函数或过程的实现主要地取决于关键的数据结构。如果一个或多个这样的数据结构发生了变化，这种变化将涉及到许多方面，许多函数和过程必须重写。有时几个关键的数据结构发生变化，将导致整个软件系统的结构崩溃。随着软件规模和复杂性的增长，这种缺陷日益明显。当程序达到一定规模后，为了修改一个小的错误，常可能引出多个大的错误，究其原因，问题就出在传统的程序设计方式上。
而当前的软件应用领域已从传统的科学计算和事务处理扩展到了其它的很多方面，如人工智能、计算机辅助设计和辅助制造等，所需处理的数据也已从简单的数字和字符串发展为记录在各种介质上并且有多种格式的多媒体数据，如数字、正文、图形、声音和影像等。数据量和数据类型的空前激增导致了许多程序的规模和复杂性均接近或达到了用结构化程序设计方法无法管理的程度。
因此尽管结构化程序设计技术具有这样那样的优点，它的这些局限性注定了这种程序设计方法对于规模较小的软件，结构化程序设计是适用的；但当软件规模大到一定程度，这种程序设计方法就显现出稳定性低、可修改性和可重用性差的弊端。