/****************************************************************************/1// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo2// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.3// activitygen module4// Copyright 2010 TUM (Technische Universitaet Muenchen, http://www.tum.de/)5// This program and the accompanying materials are made available under the6// terms of the Eclipse Public License 2.0 which is available at7// https://www.eclipse.org/legal/epl-2.0/8// This Source Code may also be made available under the following Secondary9// Licenses when the conditions for such availability set forth in the Eclipse10// Public License 2.0 are satisfied: GNU General Public License, version 211// or later which is available at12// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html13// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later14/****************************************************************************/15/// @file AGPerson.h16/// @author Piotr Woznica17/// @author Walter Bamberger18/// @author Daniel Krajzewicz19/// @date July 201020///21// Parent object of every person, contains age and any natural characteristic22/****************************************************************************/23#pragma once24#include <config.h>252627// ===========================================================================28// class definitions29// ===========================================================================30/**31* @class AGPerson32* @brief Base class of every person in the city (adults and children)33*34* This class provides the functionality common to all person in the city. It35* is a base class for other classes and is not intended to be instantiated36* as an object. Therefore, all constructors are protected.37*/38class AGPerson {39public:40/** @brief Provides the age of the person.41*42* @return the age in years43*/44virtual int getAge() const;4546/** @brief Lets the person make a decision.47*48* The higher the degree of belief is, the more likely this method returns49* true.50*51* @param[in] degreeOfBelief how strong the person beliefs the proposition52* @return whether the person agrees with the proposition53*/54virtual bool decide(double probability) const;5556/** @brief Puts out a summary of the class properties.57*/58virtual void print() const;5960protected:61int age;6263/** @brief Initialises the class attributes.64*65* @param[in] age the age of the person66*/67AGPerson(int age);6869/** @brief Cleans up everything.70*/71virtual ~AGPerson();72};737475