C++ Common Knowledge

C++ Common Knowledge pdf epub mobi txt 电子书 下载 2026

出版者:Addison-Wesley Professional
作者:Stephen C. Dewhurst
出品人:
页数:272
译者:
出版时间:28 February, 2005
价格:$29.99
装帧:Paperback
isbn号码:9780321321923
丛书系列:
图书标签:
  • C++
  • 程序设计
  • 英文版
  • 编程
  • C/C++
  • 2005
  • 计算机科学
  • 计算机
  • C++编程
  • 基础知识
  • 常用语法
  • 面向对象
  • 标准库
  • 程序设计
  • 代码优化
  • 算法基础
  • 内存管理
  • 开发入门
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

What Every Professional C++ Programmer Needs to KnowPared to Its Essentials So It Can Be Efficiently and Accurately Absorbed

C++ is a large, complex language, and learning it is never entirely easy. But some concepts and techniques must be thoroughly mastered if programmers are ever to do professional-quality work. This book cuts through the technical details to reveal what is commonly understood to be absolutely essential. In one slim volume, Steve Dewhurst distills what he and other experienced managers, trainers, and authors have found to be the most critical knowledge required for successful C++ programming. It doesn't matter where or when you first learned C++. Before you take another step, use this book as your guide to make sure you've got it right!

This book is for you if

You're no "dummy," and you need to get quickly up to speed in intermediate to advanced C++

You've had some experience in C++ programming, but reading intermediate and advanced C++ books is slow-going

You've had an introductory C++ course, but you've found that you still can't follow your colleagues when they're describing their C++ designs and code

You're an experienced C or Java programmer, but you don't yet have the experience to develop nuanced C++ code and designs

You're a C++ expert, and you're looking for an alternative to answering the same questions from your less-experienced colleagues over and over again

C++ Common Knowledge covers essential but commonly misunderstood topics in C++ programming and design while filtering out needless complexity in the discussion of each topic. What remains is a clear distillation of the essentials required for production C++ programming, presented in the author's trademark incisive, engaging style.

好的,这是一份关于其他主题的图书简介,内容详尽,力求自然流畅: --- 《数字孪生:从理论基石到工业实践的深度解析》 图书简介 在当今快速数字化的时代,一项革命性的技术正在重塑我们对物理世界的理解与管理方式——数字孪生(Digital Twin)。本书《数字孪生:从理论基石到工业实践的深度解析》,旨在为工程师、架构师、决策者以及对前沿技术充满好奇的读者,提供一个全面、深入且高度实用的指南。我们不仅探讨数字孪生“是什么”,更聚焦于“如何构建”与“如何应用”,将复杂的理论概念转化为可操作的工业蓝图。 本书结构严谨,内容横跨理论基础、核心技术栈、应用领域拓展及未来趋势展望,力求做到脉络清晰、论证充分。 第一部分:奠定认知基石——数字孪生的核心概念与演进 本部分从历史视角出发,清晰界定了数字孪生与传统仿真、建模的区别与联系。我们深入剖析了数字孪生体的基本构成要素:物理实体、数字模型、连接机制和数据流。 定义与范畴界定: 阐明数字孪生不仅是静态的虚拟模型,而是一个持续演进、双向互动的生命体。区分了“数字描述体”、“数字影子”和“数字孪生体”这三个关键阶段,帮助读者准确把握技术成熟度。 演进驱动力: 探讨物联网(IoT)、边缘计算、高性能计算(HPC)和人工智能(AI)如何共同催生了数字孪生的成熟,分析了驱动其在工业4.0中爆发性增长的关键技术节点。 生命周期视角: 详细阐述了数字孪生如何在产品的概念设计、制造部署、运行维护乃至最终退役的全生命周期中扮演不同角色,实现价值的最大化。 第二部分:构建技术栈——支撑数字孪生的核心技术深度剖析 数字孪生的实现依赖于一套复杂而精密的集成技术。本部分将技术拆解为可理解的模块,详细解析每一层的技术细节和最佳实践。 2.1 数据采集与互联:物联网与边缘智能 数字孪生的“实时性”和“保真度”直接取决于数据输入。我们着重讲解了: 传感器技术与数据预处理: 如何选择合适的传感器(如激光雷达、超声波、环境监测器)以捕获物理实体的高维数据。重点讨论了数据清洗、融合和标准化,确保输入模型的“干净”与“一致”。 边缘计算在孪生中的作用: 分析了边缘计算如何解决云端处理的时延问题,实现本地化、低延迟的决策反馈回路,这对关键任务(如高精度控制、安全监测)至关重要。 通信协议栈的选型: 比较MQTT、OPC UA、5G等在不同应用场景下的优劣势,指导读者构建稳健、高效的数据传输网络。 2.2 模型构建与仿真引擎 这是数字孪生的“大脑”。本部分详尽讨论了如何将物理规律转化为可计算的模型: 多尺度、多物理场建模: 探讨如何集成机械运动学、热力学、流体力学(CFD)和电磁学模型,创建具有高保真度的综合模型。书中提供了关于有限元分析(FEA)在孪生体构建中的应用案例。 实时仿真与离线验证: 区分用于“预测未来”的实时仿真和用于“验证设计”的离线高精度仿真。介绍了如何利用高性能计算集群加速复杂的模型迭代过程。 几何与拓扑表示: 讨论了CAD/CAE模型与实时运行数据的映射机制,确保虚拟模型与物理实体的空间一致性。 2.3 数据驱动的智能增强:AI与机器学习的整合 没有智能,数字孪生只能是“数字模型”。本部分侧重于如何赋予孪生体预测和自我优化能力。 状态监测与预测性维护(PdM): 介绍如何利用机器学习算法(如LSTM、Transformer模型)分析时序数据,提前识别潜在故障模式,并量化剩余使用寿命(RUL)。 数字孪生驱动的优化: 探讨强化学习(RL)如何通过在虚拟环境中进行无数次试错,找到最优的控制策略,并将这些策略安全地部署到物理实体上。 不确定性量化(UQ): 针对模型误差和测量噪声,讲解如何使用贝叶斯方法等技术量化预测结果的不确定性,帮助操作人员做出更稳健的决策。 第三部分:跨越鸿沟——行业应用与最佳实践 本书不满足于理论探讨,而是深入多个关键行业,展示数字孪生如何解决实际痛点,实现价值转化。 智能制造与工厂优化: 以离散制造和流程工业为例,展示如何通过孪生体优化生产调度、瓶颈分析、柔性产线配置,并实现远程质量控制。 智慧城市与基础设施管理: 探讨建筑信息模型(BIM)与地理信息系统(GIS)如何融合,构建城市级的数字孪生,用于交通流管理、能源分配和应急响应规划。 航空航天与复杂系统管理: 重点分析数字孪生在飞机健康管理(PHM)和任务模拟中的关键作用,如何通过孪生体支撑极端条件下的安全认证。 医疗健康与个性化治疗: 介绍“人体数字孪生”的概念,如何通过个体生理数据建立模型,用于药物剂量优化和手术规划。 第四部分:挑战、治理与未来展望 最后,本书正视了推广数字孪生所面临的现实障碍,并展望了下一代技术的潜力。 数据安全与隐私: 深入分析双向数据流带来的安全隐患,包括模型逆向工程风险和数据泄露问题。探讨联邦学习和同态加密在保护孪生数据方面的应用。 互操作性标准与本体论构建: 讨论行业碎片化的问题,以及制定统一数据模型和语义标准的必要性。 通用人工智能(AGI)与数字孪生: 探讨未来高度智能化的孪生体,如何演变为能够自主学习、自我修复的“数字生命体”,以及这将对人类的决策模式产生何种深远影响。 本书特色: 本书集合了超过三十个详尽的工业案例和技术路线图,图文并茂,辅以大量系统架构图和流程分解,确保读者不仅理解“是什么”,更能掌握“怎么做”。它是一本面向实践的工具书,也是一本引导未来思考的战略蓝图。无论您是希望在企业中落地数字孪生项目,还是渴望站在技术前沿进行研发,本书都将是您不可或缺的专业参考。 ---

作者简介

"Steve taught me C++. This was back in 1982 or 1983, I think he had just returned from an internship sitting with Bjarne Stroustrup [inventor of C++] at Bell Labs. Steve is one of the unsung heroes of the early days, and anything Steve writes is on my A-list of things to read. This book is an easy read and collects a great deal of Steve's extensive knowledge and experience. It is highly recommended."

Stan Lippman, coauthor of C++ Primer, Fourth Edition

目录信息

读后感

评分

这本书与《Effective C++》属于同一类型,但二者的内容重合度不高,而且我认为比Effective C++更值得一读。原因是Effective C++更偏重C++语言的特点;而本书更偏重于多数程序员的日常开发,包含了一些设计思想。读本书可以感觉到作者是厚积薄发型的,本书虽然是面向初学者,但...  

评分

本书的定位是一本中阶C++书籍,作者也是按这个思路去写的,所以每个item都很短,不超过两三页。但是作者太过贪心了,在这本不到两百页的技术书籍中写了63个item,囊括了C++的语言特性、设计模式、模板进阶使用等。设计模式和C++模版不是三言两语就可以讲明白的,除非你已经对这...

评分

本书的定位是一本中阶C++书籍,作者也是按这个思路去写的,所以每个item都很短,不超过两三页。但是作者太过贪心了,在这本不到两百页的技术书籍中写了63个item,囊括了C++的语言特性、设计模式、模板进阶使用等。设计模式和C++模版不是三言两语就可以讲明白的,除非你已经对这...

评分

本书的定位是一本中阶C++书籍,作者也是按这个思路去写的,所以每个item都很短,不超过两三页。但是作者太过贪心了,在这本不到两百页的技术书籍中写了63个item,囊括了C++的语言特性、设计模式、模板进阶使用等。设计模式和C++模版不是三言两语就可以讲明白的,除非你已经对这...

评分

这本书与《Effective C++》属于同一类型,但二者的内容重合度不高,而且我认为比Effective C++更值得一读。原因是Effective C++更偏重C++语言的特点;而本书更偏重于多数程序员的日常开发,包含了一些设计思想。读本书可以感觉到作者是厚积薄发型的,本书虽然是面向初学者,但...  

用户评价

评分

在现代C++开发中,异常处理和错误管理是构建健壮、可靠系统的关键。这本书在这方面的内容,给予了我许多实用的指导和深刻的启示。我一直觉得,C++的异常处理机制虽然强大,但如果不加正确使用,也可能引入一些性能问题和复杂的控制流。书中对异常的声明、抛出(throw)和捕获(catch)的整个生命周期进行了细致的讲解,并且特别强调了“异常安全”(Exception Safety)的重要性。它详细阐述了异常安全的三种承诺:基本承诺(Basic Guarantee)、强异常承诺(Strong Guarantee)和无异常承诺(No-throw Guarantee),并提供了在实际编程中如何实现这些承诺的具体方法,例如使用RAII技术来保证资源的正确释放。我特别喜欢书中关于“异常安全”和“RAII”结合的部分,通过智能指针(如`std::unique_ptr`和`std::shared_ptr`)的例子,我理解了如何让资源的管理与对象的生命周期绑定,即使在发生异常的情况下,也能确保资源的正确释放,避免内存泄漏。此外,书中也讨论了错误码(Error Codes)和异常处理的适用场景,以及如何在这两者之间做出明智的选择。例如,对于那些可以预期的、低级别的错误,使用错误码可能更加高效;而对于那些表示程序执行流程被中断的、严重的错误,异常处理则更为合适。书中对`try-catch`块的嵌套使用,以及如何处理捕获到的异常类型,也进行了详细的阐述,这帮助我构建了更精细的错误处理逻辑,使我的程序在面对各种异常情况时能够更加从容。

评分

这本书对于理解C++的面向对象特性,尤其是“封装”、“继承”和“多态”,提供了一个全新的视角。我一直觉得,虽然C++是一门面向对象的语言,但它的对象模型有时会显得比较复杂,尤其是当涉及到虚函数和抽象基类的时候。这本书非常巧妙地将这些概念拆解开来,并通过大量的代码片段和逻辑分析,让我能够一步步地理解它们是如何协同工作的。例如,在讲解“多态”时,书中不仅仅是展示了如何通过基类指针指向派生类对象来实现运行时多态,还深入探讨了虚函数表(vtable)的底层实现原理,以及函数调用的过程。这让我明白了,为什么通过基类指针调用虚函数能够实现动态绑定,以及这背后付出的性能开销。此外,书中对“继承”的讨论也相当全面,它不仅涵盖了公有继承、保护继承和私有继承的区别,还详细解释了菱形继承问题以及如何通过虚继承来解决。这种深入到底层的讲解,让我对C++的对象模型有了更透彻的理解,也让我能够写出更具可重用性和扩展性的代码。我曾经在设计一个具有复杂层级结构的类时,遇到了命名冲突和属性暴露的问题,这本书提供的关于访问修饰符(public, protected, private)的详细讲解,以及如何合理地组织类的成员,帮助我解决了这些棘手的难题。更重要的是,它强调了“组合优于继承”的设计原则,并提供了一些在C++中实现组合的优秀实践,这对于我构建更灵活、更易于维护的系统非常有启发。

评分

这本书在STL(Standard Template Library)的讲解上,可以说是我读过的所有C++书籍中最全面、最深入的一本。STL是C++开发中不可或缺的一部分,掌握STL的各种容器、算法和迭代器,对于提高开发效率和代码质量至关重要。这本书没有仅仅列出`vector`、`list`、`map`等容器的常用接口,而是深入剖析了它们的底层实现机制,例如`vector`的动态扩容策略,`list`的双向链表结构,以及`map`和`set`所使用的平衡二叉搜索树(如红黑树)。理解这些底层细节,能够帮助我更好地选择合适的容器,并避免在不经意间引入性能瓶颈。我特别欣赏书中关于迭代器(Iterators)的详细讲解,它不仅介绍了输入迭代器、输出迭代器、前向迭代器、双向迭代器和随机访问迭代器等不同类型的迭代器,还解释了它们在 STL 算法中的应用。这让我明白了为什么有些算法只能用于某些特定类型的迭代器。此外,书中对 STL 算法库的介绍也非常详尽,从基本的排序、查找算法,到更复杂的数值算法和组合算法,都提供了清晰的说明和使用示例。例如,书中关于`std::sort`的各种排序策略的比较,以及`std::lower_bound`和`std::upper_bound`在有序序列中的高效查找,都让我受益匪浅。它还指导了我如何使用STL的仿函数(Functors)和lambda表达式来定制算法的行为,这使得STL的灵活性得到了极大的提升。

评分

这本书的风格让我非常欣赏,它没有那种高高在上、理论空洞的讲授方式,而是更像一位经验丰富的同行,与我分享他在C++开发中的实践经验和思考。我尤其喜欢书中那些“最佳实践”和“陷阱提示”的部分。作者总是能够敏锐地捕捉到C++编程中那些容易被新手忽略,但却会带来潜在问题的细节。例如,书中关于“头文件包含”(Header Inclusion)的讨论,详细解释了如何使用预编译头文件(Precompiled Headers)来加速编译过程,以及如何通过前向声明(Forward Declaration)来减少编译依赖。这对于我管理大型项目中的编译时间和依赖关系提供了非常有价值的建议。同时,书中也反复强调了代码的可读性、可维护性和可测试性。它不仅仅关注如何让代码“工作”,更关注如何让代码“易于理解”和“易于修改”。例如,在讲解如何编写清晰的函数时,书中提倡“函数应只做一件事”,并提供了如何将复杂函数分解成多个更小、更专注的函数的示例。我对书中关于“代码规范”的讨论也印象深刻,它提供了一些通用的命名约定、缩进风格和注释方式,这对于团队协作和代码的长远维护非常有益。这本书让我明白,成为一名优秀的C++程序员,不仅需要掌握语言的语法和特性,更需要培养良好的编程习惯和对代码质量的追求。

评分

读完这本书,我感觉自己对C++的理解进入了一个全新的层次,它不仅仅是知识的传授,更是一种思维方式的引导。我尤其被书中关于“C++的哲学”和“面向对象设计原则”的讨论所吸引。作者并没有将C++仅仅看作是一堆语法规则的集合,而是将其背后的设计思想和演进历程娓娓道来。例如,书中在讲解C++11的移动语义时,并没有停留在“右值引用”这个技术点上,而是深入分析了它为何会被引入,以及它如何改变了C++的代码编写方式,如何与RAII、资源管理等概念相结合,共同提升程序的效率和安全性。这种“追根溯源”的讲解方式,让我能够更深刻地理解C++的每一个特性在整个语言体系中的位置和意义。此外,书中也引用了许多经典的C++设计模式,如单例模式(Singleton Pattern)、工厂模式(Factory Pattern)、观察者模式(Observer Pattern)等,并提供了在C++中实现这些模式的最佳实践。通过这些模式的学习,我不仅能够解决实际开发中的常见问题,更重要的是,我学会了如何构建更具弹性和可扩展性的软件系统。书中对“抽象”、“接口”和“多态”的强调,以及如何利用C++的特性来实现这些面向对象的核心概念,为我提供了强大的设计工具。它让我不再局限于“如何实现一个功能”,而是开始思考“如何设计一个更优雅、更易于维护的解决方案”。

评分

这本书的标题“C++ Common Knowledge”确实给我带来了最初的期待,我一直都在寻找一本能够系统梳理C++核心概念,并且能够深入浅出的读物,因为在我的编程生涯中,C++一直扮演着一个重要角色,虽然我自认为对它有一定的了解,但总感觉有些地方不够扎实,或者说,我害怕那些“隐藏的陷阱”和“被忽视的最佳实践”。所以,当看到这本书的名字时,我仿佛看到了一个能帮助我填补这些空白的指南。我期望它不仅仅是罗列语法和特性,更重要的是能够解释“为什么”以及“何时”使用它们。例如,在内存管理方面,我希望它能详细阐述RAII(Resource Acquisition Is Initialization)模式的精髓,并提供不同场景下的实际应用示例,比如智能指针的生命周期管理、文件句柄的正确关闭等等。同时,我也期待它能对C++11、C++14、C++17甚至C++20等新标准中的关键特性进行深入剖析,比如右值引用和移动语义如何优化性能,lambda表达式如何简化代码,以及STL(Standard Template Library)的深度使用技巧,例如如何更高效地利用算法库中的函数,如何设计出更具扩展性的容器。我更看重的是书中对C++哲学和设计理念的传达,例如面向对象编程的 SOLID 原则在C++中的体现,以及模板元编程能够带来的强大能力和潜在的复杂性。如果这本书能像一个经验丰富的导师一样,引导我一步步理解C++的底层机制,解答我心中那些关于效率、安全和可维护性的疑问,那它将是我书架上不可多得的珍品。我非常希望它能够涵盖到诸如并发编程、异常处理、以及一些经典的C++设计模式等更高级的主题,并且能够以一种循序渐进的方式呈现,让我在学习的过程中不会感到 overwhelming,而是充满成就感。

评分

我对C++的并发编程(Concurrency)一直抱有浓厚的兴趣,但同时也感到有些无从下手。多线程、同步机制、竞态条件(Race Conditions)和死锁(Deadlocks)等概念,都让我在实际开发中感到困惑。这本书在这个主题上,为我打开了一扇新的大门。它从操作系统层面的线程概念讲起,逐步深入到C++标准库提供的并发支持。我非常欣赏书中对`std::thread`的详细讲解,包括如何创建线程、如何管理线程的生命周期、以及如何进行线程的join和detach。更重要的是,书中对同步机制的阐述,如互斥量(Mutexes)、条件变量(Condition Variables)和原子操作(Atomic Operations),让我明白了如何在多线程环境中保护共享数据,避免竞态条件。例如,通过`std::mutex`和`std::lock_guard`,我学会了如何以一种安全的方式来保护临界区。书中对“死锁”的产生原因和避免方法的分析也非常透彻,提供了多种实用的策略,比如固定加锁顺序、使用超时机制以及避免嵌套锁。此外,书中还介绍了C++11引入的`std::future`和`std::promise`,以及`std::async`等高级并发工具,它们极大地简化了异步编程和结果传递的复杂性。我曾遇到过一个需要对大量数据进行并行处理的场景,书中关于并行算法(Parallel Algorithms)的介绍,例如`std::for_each`的并行版本,为我提供了直接可用的解决方案,显著提高了程序的执行效率。

评分

读完这本书,我最大的感受是它成功地将C++中那些看似枯燥但至关重要的底层概念,用一种非常引人入胜的方式呈现了出来。我尤其对其中关于“拷贝构造函数”和“赋值运算符重载”的部分印象深刻。过去,我常常因为不注意深拷贝和浅拷贝的区别,导致程序出现奇怪的bug,尤其是在涉及到动态内存分配的时候。这本书不仅详细解释了这两个成员函数的工作原理,还通过生动的例子,展示了在不同情况下,正确实现它们的重要性。例如,在处理类中包含指针成员变量时,如果不进行深拷贝,多个对象可能会指向同一块内存,当其中一个对象释放内存时,其他对象就会变成野指针,引发不可预知的错误。书中提供了一种清晰的模式,即“三法则”(Rule of Three/Five/Zero),它帮助我理解了何时需要自定义拷贝构造函数、赋值运算符重载,甚至析构函数,以及何时可以通过编译器生成的默认版本来满足需求,或者更进一步,如何利用C++11引入的移动构造函数和移动赋值运算符来进一步优化性能。这种对细节的关注,以及对潜在问题的预见性,是这本书最让我感到惊喜的地方。它不仅仅是教你“怎么做”,更是让你理解“为什么这样做”。例如,在解释const引用时,它不仅仅是告诉你可以用它来避免不必要的拷贝,更深入地分析了它在传递大型对象时对性能的提升,以及它如何帮助我们编写更安全、更易于推理的代码,因为const修饰的变量其值在生命周期内是不可变的,这大大降低了意外修改的风险。

评分

这本书对于理解C++的内存模型和底层机制,可以说是我学习过程中一个重要的里程碑。我一直都知道C++提供了非常灵活的内存管理能力,但也深知其中蕴含的风险。书中对栈(Stack)、堆(Heap)以及静态存储区域(Static Storage Area)的划分和生命周期进行了清晰的解释,让我对变量的存储位置有了更深刻的认识。尤其令我印象深刻的是关于“指针”和“引用”的区别与联系的讲解。它不仅解释了它们的语法特性,更深入地探讨了指针在底层是如何工作的,以及它与内存地址的关系。书中对“野指针”(Dangling Pointers)和“空指针”(Null Pointers)的形成原因和危害进行了详尽的分析,并提供了有效的避免方法。我曾经在一段复杂的C++代码中,因为不当的指针操作导致了段错误(Segmentation Fault),这本书提供的关于指针算术、指针解引用以及指针类型的转换等知识,帮助我更准确地理解了那一错误发生的原因,并学会了如何在日后的编程中规避类似的问题。此外,书中对“内存对齐”(Memory Alignment)的讲解也让我大开眼界。它解释了为什么不同的数据类型在内存中会有不同的存储要求,以及这如何影响到程序的性能和行为。理解内存对齐,对于编写高性能的低层代码至关重要。它还探讨了“内存池”(Memory Pools)和“自定义内存分配器”(Custom Allocators)等高级技术,为我提供了优化内存使用效率的思路。

评分

我一直对C++的模板(Templates)机制既着迷又感到畏惧。它所能带来的强大的代码复用能力和编译期性能优化,是其他许多语言望尘莫及的。然而,模板的复杂性和出错时令人费解的编译错误信息,也常常让我头疼不已。这本书在这方面做得非常出色。它没有简单地罗列模板语法,而是从“泛型编程”的理念出发,逐步引导读者理解模板的本质。从函数模板到类模板,再到特化和偏特化,这本书都提供了清晰的解释和大量的实战案例。我尤其喜欢书中关于“模板元编程”(Template Metaprogramming)的章节。虽然这是一个非常高级的主题,但作者通过一系列循序渐进的例子,让我看到了如何利用模板在编译期进行计算、生成代码,甚至实现某些类似函数式编程的特性。这极大地拓宽了我的编程思路。例如,书中演示了如何使用模板来实现一个编译期斐波那契数列计算器,这让我深刻体会到了模板的威力。此外,它也详细讲解了C++11引入的`auto`关键字、范围`for`循环,以及lambda表达式等新特性,这些都极大地简化了模板的使用,并提高了代码的可读性。书中关于`std::enable_if`的使用,帮助我理解了如何根据模板参数的类型来条件性地实例化模板,从而避免了不必要的编译错误,并能生成更优化的代码。

评分

评分

评分

评分

评分

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有