Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
utility::VirtualBase Class Reference

Base class for Polymorphic classes All classes in Rosetta used polymorphically (that is, where a pointer/reference to a base type can point/reference a derived type) should inherit from this class. More...

#include <VirtualBase.hh>

Inherited by apps::pilot::frankdt::segment_file_generator, basic::citation_manager::AuthorNames, basic::citation_manager::Citation, basic::citation_manager::CitationCollection, basic::citation_manager::UnpublishedModuleAuthor, basic::citation_manager::UnpublishedModuleInfo, basic::database::insert_statement_generator::RowDataBase, basic::database::schema_generator::Column, basic::database::schema_generator::Constraint, basic::database::schema_generator::DbDataType, basic::datacache::CacheableData, basic::datacache::ConstDataMap, basic::datacache::DataCache< Data >, basic::datacache::DataMap, basic::datacache::DataMapObj< Ty >, basic::datacache::HierarchicalDataMap, basic::datacache::WriteableCacheableDataCreator, basic::Emitter, basic::MetricValueBase, basic::mpi::MessageListener, basic::random::RandomGeneratorSettings, basic::resource_manager::ResourceLoader, basic::resource_manager::ResourceLoaderCreator, basic::resource_manager::ResourceLocator, basic::resource_manager::ResourceLocatorCreator, basic::resource_manager::ResourceManager, basic::resource_manager::ResourceManagerCreator, basic::resource_manager::ResourceStream, basic::sampling::orientations::QuaternionGrid, basic::tensorflow_manager::RosettaTensorflowProtocolBase, basic::thread_manager::RosettaThreadAssignmentInfo, basic::datacache::DataCache< CacheableData >, numeric::Calculator, numeric::ClusteringTreeNode, numeric::DietNode< T >, numeric::expression_parser::ArithmeticASTNode, numeric::expression_parser::ArithmeticScanner, numeric::expression_parser::ASTVisitor, numeric::expression_parser::Expression, numeric::expression_parser::Token, numeric::expression_parser::TokenSet, numeric::geometry::hashing::MinimalClashHash, numeric::geometry::hashing::SixDCoordinateBinner, numeric::geometry::hashing::xyzStripeHash, numeric::geometry::hashing::xyzStripeHashWithMeta< T >, numeric::interpolation::Histogram< typename, typename >, numeric::interpolation::spline::Interpolator, numeric::kdtree::HyperRectangle, numeric::kdtree::KDNode, numeric::kdtree::KDPoint, numeric::kdtree::KDPointList, numeric::kdtree::KDTree, numeric::kdtree::WrappedPrimitive< T >, numeric::linear_algebra::EllipseParameters, numeric::Polynomial_1d, numeric::random::RandomGenerator, numeric::random::uniform_RG, numeric::RocCurve, numeric::RocPoint, utility::graph::ArrayPool< T >, utility::graph::Digraph, utility::graph::Graph, utility::graph::LowMemGraphBase, utility::graph::UEVertex< V, E >, utility::graph::UpperEdgeGraph< V, E >, utility::heap, utility::in_place_list< T >, utility::Inline_File_Provider_Hook, utility::io::FileContentsMap, utility::io::GeneralFileContents, utility::libsvm::Svm_node_rosetta, utility::libsvm::Svm_rosetta, utility::options::OptionCollection, utility::py::PyExitCallback, utility::recent_history_queue, utility::signals::LinkUnit, utility::SimulateMPIMessage, utility::sql_database::session, utility::sql_database::transaction, utility::subset_mapping, utility::tag::Tag, utility::tag::XMLSchemaComplexTypeGenerator, utility::tag::XMLSchemaComplexTypeGeneratorImpl, utility::tag::XMLSchemaDefinition, utility::tag::XMLSchemaRepeatableCTNode, utility::tag::XMLSchemaSimpleSubelementList, utility::tag::XMLSchemaTopLevelElement, utility::tag::XMLSchemaType, numeric::geometry::hashing::xyzStripeHashWithMeta< float >, and zinc_stats::ZincStatisticGenerator.

Public Member Functions

 VirtualBase ()=default
 Default constructor. More...
 
virtual ~VirtualBase ()=default
 The virtual destructor is one of the main reasons for the VirtualBase class. More...
 
 VirtualBase (VirtualBase const &)=default
 
 VirtualBase (VirtualBase &&)=default
 
VirtualBaseoperator= (VirtualBase const &)=default
 
VirtualBaseoperator= (VirtualBase &&)=default
 

Detailed Description

Base class for Polymorphic classes All classes in Rosetta used polymorphically (that is, where a pointer/reference to a base type can point/reference a derived type) should inherit from this class.

This class serves two purposes: 1) It serves as a common base class for Rosetta object, such that a range of types can be stored as VirtualBaseOPs (and then dynamically cast to the proper type) 2) It ensures that a class hierarchy used polymorphically has a virtual destructor (which is necessary if a derived class can be stored/referenced by a base class pointer/reference).

This class used to be at utility::pointer::ReferenceCount (utility/pointer/ReferenceCount.hh) but was renamed, as it's no longer directly related to pointers/reference counting.

Constructor & Destructor Documentation

utility::VirtualBase::VirtualBase ( )
default

Default constructor.

virtual utility::VirtualBase::~VirtualBase ( )
virtualdefault

The virtual destructor is one of the main reasons for the VirtualBase class.

utility::VirtualBase::VirtualBase ( VirtualBase const &  )
default
utility::VirtualBase::VirtualBase ( VirtualBase &&  )
default

Member Function Documentation

VirtualBase& utility::VirtualBase::operator= ( VirtualBase const &  )
default
VirtualBase& utility::VirtualBase::operator= ( VirtualBase &&  )
default

The documentation for this class was generated from the following file: