more exceptional c++

时间: 2023-04-29 08:06:50 浏览: 27
b'more exceptional c++' 是一本深入讨论 C++ 异常处理机制的书籍。它探讨了异常的本质、异常的语法和语义、异常的设计和实现以及异常安全编程等方面。本书适合已有基础的 C++ 程序员阅读,有助于提高异常处理的技能和水平。
相关问题

exceptional c++ 和more exceptional c++

### 回答1: exceptional c指的是超乎寻常的C语言,即在使用C语言进行编程时,达到了非凡的水平和能力。这包括但不限于熟练掌握C语言的语法和特性,理解C语言的底层机制和内存管理,编写高效且可靠的代码,解决复杂而困难的问题。拥有exceptional c能力的程序员通常能够编写高性能的程序,优化代码,改善资源利用效率,提高软件的质量和可维护性。 而more exceptional c则进一步指的是在exceptional c的基础上,更进一步的提升和发展。它可能包括对C语言更深层次的理解,对C语言编程范式、设计模式和最佳实践的掌握,能够设计和实现复杂的数据结构和算法,以及利用C语言的扩展功能和库实现创新的解决方案。 与exceptional c相比,more exceptional c更注重在C语言的高级特性上的应用,如面向对象的编程,泛型编程,元编程等。通过更深入的学习和研究,更出色的C程序员可以利用这些高级技术,进一步提高代码的可读性,可维护性和重用性。 总而言之,exceptional c是对熟练掌握C语言编程的基本要求,而more exceptional c则代表在此基础上进一步提升和发展,拥有更高级的技能和能力。 ### 回答2: exceptional c是指非常优秀的C语言代码,具有出色的设计和实现,能够在效率、可靠性和可读性等方面表现出色。这种代码通常具有良好的算法和数据结构选择,以及正确的错误处理机制。 而more exceptional c是指比exceptional c更加出色的C语言代码,更具有创新和突破性。它可能包含了前沿的编程技术、高级的数据结构和算法,以及更为复杂和深入的问题解决方案。这种代码可能会利用C语言的底层优势,充分发挥计算机性能并提供更高的效率。 在开发过程中,编写exceptional c代码需要遵循良好的编程习惯和规范,保持代码的可维护性和可扩展性。这种代码通常具有清晰的结构和注释,函数和变量命名规范恰当。同时,编写exceptional c代码也要注意错误处理和异常处理,确保代码的健壮性和可靠性。 而more exceptional c则需要更深入的编程知识和技巧。它可能涉及更多的底层编程,例如操作系统级别的代码或者底层硬件的访问。同时,more exceptional c还可能包含更复杂的算法和数据结构,以及高级的设计模式和架构思想。编写more exceptional c代码需要对C语言的特性和底层工作原理有深刻的理解和掌握。 总之,exceptional c和more exceptional c都是指在C语言中表现出色的代码,但more exceptional c更进一步,采用更高级的技术和解决方案,展现出更出色的能力和创新精神。 ### 回答3: exceptional c是指非常出色的c,可能是指一个人的能力或者品质在某个方面超越了常人,表现出非凡的才华或者特点。它强调了c的某种特别之处,使得它在众多同类中脱颖而出。 而more exceptional c则意味着更加出色的c,即在exceptional c的基础上进一步提升,突破了先前的界限,表现出更加突出的表现和才能。它可以指一个人在原有的基础上通过努力和不断学习进步,取得了更加卓越的成就,或者是指一个事物在原有的基础上通过创新和改进,达到了更高的水平。 总之,exceptional c和more exceptional c都表达了某种非凡和出色的意思,但more exceptional c更加强调在原有的基础上取得更高的成就和突破。

exceptional c++pdf

Exceptional C是一本针对C语言编程的优秀书籍,该书的作者是Herb Sutter。Exceptional C PDF指的是该书的PDF版本。这本书主要探讨了C语言中一些普通程序员所容易忽视或者容易出错的问题,以及如何避免这些问题,进而编写出更加高质量的C代码。 Exceptional C PDF的内容丰富而深入,包括了C语言的各个方面。从语言本身的特性、内存管理、多线程编程,到异常处理和错误处理等等,都有涉及。这本书通过大量的实例和解释,帮助读者更好地理解C语言编程的各个方面,从而提升他们的编程能力。 Exceptional C PDF的价值在于它深入浅出地讲解了C语言编程过程中的一些难题和陷阱,为读者提供了解决这些问题的方法和技巧。这对那些想要成为一名优秀C语言程序员的人来说,是非常有价值的。 值得一提的是,Exceptional C PDF并非一本适合初学者的教程。它更适合那些已经有一定C语言编程经验的人,希望进一步提升自己的技能和水平。读者可以通过阅读Exceptional C PDF,学习到更多高级的C语言编程技巧和最佳实践,从而编写出更加高效、健壮和可维护的代码。 总之,Exceptional C PDF是一本对于C语言编程来说非常有价值的书籍,它通过深入的讲解和丰富的实例,帮助读者理解和解决C语言编程过程中的难题,提升他们的编程能力。

相关推荐

### 回答1: “exceptional c”是一本由Herb Sutter撰写的书籍,它涵盖了C++编程语言中关于异常处理的重要概念和技术。本书旨在帮助C++开发人员更加深入地理解和应用异常处理机制。 在这本书中,Herb Sutter首先介绍了异常处理的基本概念,包括异常的定义、异常的捕获和抛出机制。他还详细讨论了异常的设计原则和最佳实践,以及在不同情况下如何选择适当的异常类型。 除了介绍基本概念外,Sutter还提供了一些高级的异常处理技术,包括异常安全性和异常规范。异常安全性是指在异常发生时,程序能够保持在一个良好的状态,而不会导致资源泄漏或数据破坏。异常规范是指在函数声明中明确指定可能抛出的异常类型,以便调用者可以正确地处理异常情况。 此外,Sutter还探讨了异常处理与性能之间的平衡。他提供了一些减少异常开销的技巧,以及在性能至关重要的情况下如何合理地使用异常。 总之,“exceptional c”是一本关于C++异常处理的重要参考书籍。它提供了丰富的理论知识和实践经验,帮助开发人员更好地理解和应用C++异常处理机制。无论是初学者还是有经验的开发人员,都可以从这本书中获得宝贵的知识和技巧,提高自己的编程能力。 ### 回答2: Exceptional C是由Herb Sutter所著的一本关于C++编程的书籍。Herb Sutter是一位在C++领域备受认可的专家,他为C++标准委员会做出了许多重要贡献,并通过他的著作和演讲向C++社区传授了丰富的知识和经验。 《Exceptional C》这本书主要讨论了C++编程中的异常处理和错误处理。它强调了异常处理应该是一种稳健且高效的方法,以提供更好的程序健壮性和可维护性。 该书的重点内容包括:异常的工作原理、如何正确使用异常、异常的性能影响、异常安全性和资源管理等。通过深入研究这些问题,读者可以更好地理解和利用C++中的异常机制。 Herb Sutter在书中以清晰简明的方式解释了异常处理的最佳实践,并分享了许多实用的编程技巧和示例。他通过深入剖析异常处理的内部机制,教会读者如何编写出性能出色、容错能力强的代码。 Herb Sutter的异常处理理论和实践经验对C++程序员来说无疑是一份宝贵的财富。《Exceptional C》不仅是一本实用的参考书,也是一本具有启发性的读物,能够帮助读者掌握异常处理的精髓,提升自己在C++编程领域的专业水平。 总之,Exceptional C这本书是Herb Sutter对C++异常处理的总结和分享,它对于想要提升自己C++编程技能的人来说是一本值得阅读的重要参考书。 ### 回答3: Exceptional C 是由C++专家Herb Sutter所著的一本关于C++编程的书籍。这本书主要介绍了一些C++编程中的重要概念和技巧,旨在帮助读者变得更加熟练和精通C++语言。 在这本书中,Sutter从C++的核心概念开始,讲解了一些高级的编程技巧和设计模式,帮助读者更好地理解和应用C++语言。他解释了一些在C++中常见的问题和陷阱,并提供了一些解决方案和最佳实践。通过这本书,读者可以学习到如何编写高效、可维护和健壮的C++代码。 Sutter在书中也强调了C++语言的一些独特之处,如异常处理、模板元编程和多线程编程等。他详细讲解了这些主题,并提供了一些实际的案例和示例,使读者能够更好地理解和应用这些概念。 这本书的特点之一就是它的实用性。Sutter将复杂的概念和技术以简单明了的方式解释清楚,并给出了一些实用的建议和技巧。这使得读者可以直接将书中的知识应用到自己的实际项目中。 总之,Exceptional C是一本权威且实用的C++编程指南,通过阅读这本书,读者可以提高自己的C++编程能力,并写出更加高效和可靠的代码。无论是初学者还是有经验的开发者,都可以从这本书中受益匪浅。
select函数是Python中用于监听多个文件描述符(包括socket连接)的一种I/O复用机制。它属于底层操作系统提供的函数,用于实现非阻塞的I/O操作。 在Python中,可以使用select模块的select函数来调用底层的select系统调用。select函数接受三个参数,分别是包含所有待监控的读文件描述符的列表、包含所有待监控的写文件描述符的列表和包含所有待监控的异常文件描述符的列表。 通过调用select函数,可以实现对这些文件描述符的监听,当其中任何一个文件描述符准备好进行I/O操作时,select函数就会返回,并且可以通过检查返回值来确定哪些文件描述符可读、可写或者出现了异常。 select函数的返回值是一个由3个子集组成的元组,分别表示可读、可写和出现异常的文件描述符集合。 以下是一个使用select函数实现异步I/O的简单示例: python import select import socket server_socket = socket.socket() server_socket.bind(('localhost', 8888)) server_socket.listen(5) inputs = [server_socket] outputs = [] errors = [] while True: readable, writable, exceptional = select.select(inputs, outputs, errors) for sock in readable: if sock is server_socket: client_socket, addr = server_socket.accept() inputs.append(client_socket) else: data = sock.recv(1024) if data: # 处理接收到的数据 pass else: inputs.remove(sock) sock.close() for sock in writable: # 处理可写事件 pass for sock in exceptional: # 处理异常事件 pass 在上述示例中,通过将server_socket添加到inputs列表中,监听其可读事件,当有新的客户端连接时,会添加客户端socket到inputs列表中,以进行后续的读操作。可写事件和异常事件的处理方式类似。 需要注意的是,select函数在Windows系统上有一些限制,建议在Unix/Linux系统上使用更为强大的epoll或kqueue等机制来代替。
select是Python中的一个用于I/O多路复用的系统调用,用于监视多个文件描述符的状态,当其中任意一个文件描述符发生变化时,就会通知程序进行相应的处理。 select的基本用法如下: python import select readable, writable, exceptional = select.select(inputs, outputs, inputs, timeout) 其中,inputs是希望监视读取事件的文件描述符列表(可以是socket、管道、标准输入等),outputs是希望监视写入事件的文件描述符列表(可以是socket、管道等),timeout是超时时间(单位是秒,可以为None表示永久等待)。select会返回三个列表,分别是可读、可写、异常事件产生的文件描述符列表。 例如,我们可以使用select实现一个简单的回显服务器: python import socket import select server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(('localhost', 12345)) server.listen(5) inputs = [server] outputs = [] while True: readable, writable, exceptional = select.select(inputs, outputs, inputs, None) for r in readable: if r is server: conn, addr = server.accept() inputs.append(conn) conn.send(b'Welcome to my echo server!\n') else: data = r.recv(1024) if data: r.send(data) else: inputs.remove(r) r.close() 这个回显服务器会监听localhost的12345端口,当有客户端连接时,会给客户端发送欢迎信息。当客户端发送数据时,服务器会回显该数据给客户端。如果客户端关闭连接,则服务器会从输入列表中移除该连接。
FutureTask是Java中Executor框架提供的一个实用工具类,用来表示一个异步计算的结果,其中包含了对任务的执行状态以及返回结果的控制。FutureTask的实现原理主要包括以下几个方面: 1. FutureTask内部有一个volatile修饰的state字段,用于表示任务的执行状态。初始状态为NEW,表示任务还未开始执行;运行状态为RUNNING,表示任务正在执行中;完成状态为COMPLETING,表示任务已经执行完成但还未获取结果;NORMAL,表示任务正常执行完成;异常状态为EXCEPTIONAL,表示任务执行过程中发生异常。 2. FutureTask实现了Runnable和Future接口。在任务执行的过程中,通过重写Runnable接口的run方法来执行具体的任务逻辑,并将任务的结果保存在result字段中。因为实现了Future接口,所以FutureTask可以通过get方法来获取任务的执行结果,如果任务还未执行完成,则get方法会阻塞等待任务完成。 3. FutureTask使用AQS(AbstractQueuedSynchronizer)来实现任务的执行控制。AQS是Java并发包中用于实现锁和同步器的基础类,通过实现AQS的子类Sync,来控制任务的执行和获取结果的过程。在任务执行过程中,通过CAS操作来更新任务的执行状态,确保只有一个线程能够成功获取任务的结果。 4. FutureTask还支持任务的取消操作。在调用cancel方法时,会尝试将任务的执行状态设置为CANCELLED,如果设置成功,则任务会被标记为已取消。取消任务时,如果任务已经在执行过程中,则会中断该任务的执行线程。 总之,FutureTask通过内部的状态管理、AQS实现控制、Runnable和Future接口的实现,实现了异步任务的执行控制和结果获取功能,为多线程编程提供了更强大和便捷的支持。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Car Vacation</title> </head> <body>
Home About Us Destinations Blog Contact Us Unleash Your Wanderlust Let's Travel the World with Car Vacation <button>Book Now</button>
About Us Car Vacation is a leading provider of car rental and travel services around the globe. We offer a wide variety of rental cars from economy to luxury class and provide convenient travel packages for your dream vacation. Our team consists of experienced professionals who are passionate about delivering the best customer service and value. We believe in providing exceptional travel experience to our customers by offering quality services and personalized attention to detail.
Destinations destination1 New York Discover the diverse culture and iconic landmarks of the Big Apple with our rental cars. <button>Book Now</button> destination2 Paris Experience the romantic charm and artistic heritage of the City of Love on your own schedule. <button>Book Now</button> destination3 Tokyo Explore the futuristic cityscape and rich cultural traditions of the Land of the Rising Sun. <button>Book Now</button>
From Our Blog blog1 5 Tips for Stress-Free Car Rentals Here are some useful tips to help you navigate through the car rental process and avoid unnecessary stress during your trip. <button>Read More</button> blog2 Top 10 Best Road Trip Destinations in the World If you're planning a road trip and want to explore some of the world's most stunning natural landscapes, check out our list of top 10 destinations. <button>Read More</button> blog3 How to Pack for a Car Rental Trip Here are some practical tips on what to bring and what to leave behind when packing for your upcoming car rental trip. <button>Read More</button>
Contact Us 123 Main St., Suite 101
Anytown, USA 12345
1-800-CAR-VACA
1-800-227-8222
vacations@car-vacation.com
<form> <label for="name">Name</label> <input type="text" id="name" name="name" required> <label for="email">Email</label> <input type="email" id="email" name="email" required> <label for="message">Message</label> <textarea id="message" name="message" required></textarea> <button>Send Message</button> </form>
© 2022 Car Vacation. All rights reserved.
</body> </html>
在 Python 中,可以使用 select 模块来实现基于事件驱动的 socket 编程。select 允许你监视多个 socket 对象,并在有数据可读、可写或发生错误时进行相应的处理。 下面是使用 select 的基本步骤: 1. 导入 select 模块:import select 2. 创建一个空的 inputs 列表,用于存储需要监视的 socket 对象:inputs = [] 3. 将需要监视的 socket 对象添加到 inputs 列表中:inputs.append(socket_obj) 4. 使用 select.select() 函数来进行监视和等待事件的发生。该函数接受三个参数:rlist (可读对象列表)、wlist (可写对象列表) 和 xlist (错误对象列表)。在这里,我们通常只关心可读对象,所以将 rlist 设置为 inputs:readable, writable, exceptional = select.select(inputs, [], []) 5. 检查返回的 readable 列表,它包含了有数据可读的 socket 对象。可以使用循环遍历列表并处理每个可读对象: for sock in readable: if sock == socket_obj: # 从 socket 接收数据 data = sock.recv(1024) # 处理接收到的数据 6. 重复步骤 4 和步骤 5,以便持续监视和处理事件。 需要注意的是,在使用 select 时,需要确保 socket 对象是非阻塞模式的,以避免阻塞整个程序。可以通过设置 socket_obj.setblocking(False) 来将 socket 对象设置为非阻塞模式。 这只是一个简单的示例,实际使用中可能需要更复杂的逻辑来处理不同的事件和错误。你可以根据具体需求进行扩展和定制。
要使用 Python socket 的非阻塞通信,一般会使用 select 模块来实现。select 模块可以监测多个 socket 的 I/O 状态,从而实现非阻塞通信。以下是一个简单的例子: python import select import socket # 创建 socket 对象 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置为非阻塞模式 s.setblocking(False) # 连接服务器 s.connect(('localhost', 8888)) # 监听 socket 对象 inputs = [s] while True: # 监听所有的 socket 对象 readable, writable, exceptional = select.select(inputs, [], []) for sock in readable: # 如果是 s 对象,则表示有新的连接 if sock is s: conn, addr = s.accept() print('Connected by', addr) inputs.append(conn) # 否则就是已连接的客户端发送消息 else: data = sock.recv(1024) if data: print(data.decode()) else: sock.close() inputs.remove(sock) 在这个例子中,我们使用了 select 模块来监听 socket 对象的 I/O 状态,以实现非阻塞通信。我们首先创建了一个 socket 对象 s,并将其设置为非阻塞模式,然后连接服务器。接下来,我们将 s 对象加入到 inputs 列表中,然后通过 select.select() 方法来监听 inputs 列表中所有 socket 对象的 I/O 状态。如果是 s 对象,则表示有新的连接请求,我们会接受连接并将新连接的 socket 对象加入到 inputs 列表中。否则就是已连接的客户端发送消息,我们会通过 sock.recv() 方法来接收消息,然后进行处理。如果客户端关闭了连接,我们就会将 sock 对象从 inputs 列表中删除,并关闭该连接。

最新推荐

findbugs检测提示详解

4、ignores exceptional return value of java.io.File.mkdirs(); 5、invokes inefficient new Short(short) constructor; use Short.valueOf(short) instead; ………… 总共总结常见的22条,供大家参考

JSP校园交易平台论文

As a part of e-commerce, Campus has exceptional conditions for the development of electronic commerce because of open-minded student customers, convenient material distribution, and high computer ...

代码随想录最新第三版-最强八股文

这份PDF就是最强⼋股⽂! 1. C++ C++基础、C++ STL、C++泛型编程、C++11新特性、《Effective STL》 2. Java Java基础、Java内存模型、Java面向对象、Java集合体系、接口、Lambda表达式、类加载机制、内部类、代理类、Java并发、JVM、Java后端编译、Spring 3. Go defer底层原理、goroutine、select实现机制 4. 算法学习 数组、链表、回溯算法、贪心算法、动态规划、二叉树、排序算法、数据结构 5. 计算机基础 操作系统、数据库、计算机网络、设计模式、Linux、计算机系统 6. 前端学习 浏览器、JavaScript、CSS、HTML、React、VUE 7. 面经分享 字节、美团Java面、百度、京东、暑期实习...... 8. 编程常识 9. 问答精华 10.总结与经验分享 ......

基于交叉模态对应的可见-红外人脸识别及其表现评估

12046通过调整学习:基于交叉模态对应的可见-红外人脸识别Hyunjong Park*Sanghoon Lee*Junghyup Lee Bumsub Ham†延世大学电气与电子工程学院https://cvlab.yonsei.ac.kr/projects/LbA摘要我们解决的问题,可见光红外人重新识别(VI-reID),即,检索一组人的图像,由可见光或红外摄像机,在交叉模态设置。VI-reID中的两个主要挑战是跨人图像的类内变化,以及可见光和红外图像之间的跨模态假设人图像被粗略地对准,先前的方法尝试学习在不同模态上是有区别的和可概括的粗略的图像或刚性的部分级人表示然而,通常由现成的对象检测器裁剪的人物图像不一定是良好对准的,这分散了辨别性人物表示学习。在本文中,我们介绍了一种新的特征学习框架,以统一的方式解决这些问题。为此,我们建议利用密集的对应关系之间的跨模态的人的形象,年龄。这允许解决像素级中�

rabbitmq客户端账号密码

在默认情况下,RabbitMQ的客户端账号和密码是"guest"。 但是,默认情况下,这个账号只能在localhost本机下访问,无法远程登录。如果需要添加一个远程登录的用户,可以使用命令rabbitmqctl add_user来添加用户,并使用rabbitmqctl set_permissions设置用户的权限。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [保姆级别带你入门RabbitMQ](https:

数据结构1800试题.pdf

你还在苦苦寻找数据结构的题目吗?这里刚刚上传了一份数据结构共1800道试题,轻松解决期末挂科的难题。不信?你下载看看,这里是纯题目,你下载了再来私信我答案。按数据结构教材分章节,每一章节都有选择题、或有判断题、填空题、算法设计题及应用题,题型丰富多样,共五种类型题目。本学期已过去一半,相信你数据结构叶已经学得差不多了,是时候拿题来练练手了,如果你考研,更需要这份1800道题来巩固自己的基础及攻克重点难点。现在下载,不早不晚,越往后拖,越到后面,你身边的人就越卷,甚至卷得达到你无法想象的程度。我也是曾经遇到过这样的人,学习,练题,就要趁现在,不然到时你都不知道要刷数据结构题好还是高数、工数、大英,或是算法题?学完理论要及时巩固知识内容才是王道!记住!!!下载了来要答案(v:zywcv1220)。

通用跨域检索的泛化能力

12056通用跨域检索:跨类和跨域的泛化2* Soka Soka酒店,Soka-马上预订;1印度理工学院,Kharagpur,2印度科学学院,班加罗尔soumava2016@gmail.com,{titird,somabiswas} @ iisc.ac.in摘要在这项工作中,我们第一次解决了通用跨域检索的问题,其中测试数据可以属于在训练过程中看不到的类或域。由于动态增加的类别数量和对每个可能的域的训练的实际约束,这需要大量的数据,所以对看不见的类别和域的泛化是重要的。为了实现这一目标,我们提出了SnMpNet(语义Neighbourhood和混合预测网络),它包括两个新的损失,以占在测试过程中遇到的看不见的类和域。具体来说,我们引入了一种新的语义邻域损失,以弥合可见和不可见类之间的知识差距,并确保潜在的空间嵌入的不可见类是语义上有意义的,相对于其相邻的类。我们还在图像级以及数据的语义级引入了基于混�

lua tm1637

TM1637是一种数字管显示驱动芯片,它可以用来控制4位7段数码管的显示。Lua是一种脚本语言,可以用于嵌入式系统和应用程序的开发。如果你想在Lua中使用TM1637驱动数码管,你需要先获取一个适配Lua的TM1637库或者编写自己的驱动代码。然后,你可以通过该库或者代码来控制TM1637芯片,实现数码管的显示功能。

TFT屏幕-ILI9486数据手册带命令标签版.pdf

ILI9486手册 官方手册 ILI9486 is a 262,144-color single-chip SoC driver for a-Si TFT liquid crystal display with resolution of 320RGBx480 dots, comprising a 960-channel source driver, a 480-channel gate driver, 345,600bytes GRAM for graphic data of 320RGBx480 dots, and power supply circuit. The ILI9486 supports parallel CPU 8-/9-/16-/18-bit data bus interface and 3-/4-line serial peripheral interfaces (SPI). The ILI9486 is also compliant with RGB (16-/18-bit) data bus for video image display. For high speed serial interface, the ILI9486 also provides one data and clock lane and supports up to 500Mbps on MIPI DSI link. And also support MDDI interface.

生成模型的反事实解释方法及其局限性

693694不能很好地可视化/解释非空间定位的属性,如大小、颜色等。此外,它们可以显示图像的哪些区域可以被改变以影响分类,但不显示它们应该如何被改变。反事实解释通过提供替代输入来解决这些限制,其中改变一小组属性并且观察到不同的分类结果。生成模型是产生视觉反事实解释的自然候选者,事实上,最近的工作已经朝着这个目标取得了进展在[31,7,32,1]中,产生了生成的反事实解释,但它们的可视化立即改变了所有相关属性,如图所示。二、[29]中提供的另一种相关方法是使用来自分类器的深度表示来以不同粒度操纵生成的图像然而,这些可能涉及不影响分类结果的性质,并且还组合了若干属性。因此,这些方法不允许根据原子属性及其对分类的影响来其他解释方法使用属性生成反事实,其中可以对所需属性进行完全或部分监督[10,5