Coercion and overloading

User Generated

Zrzv

Programming

Description

Consider an unknown language with integer and real types in which 1+2, 1.0+2, 1+2.0, and 1.0+2.0 are all legal expressions.

a. Explane how ths could be the result of coercion, using no overloading.

b. Explane how this could be the result of overloading, using no coercion.

c. Explane how this could result from a combination of overloading and coercion.

d. Explane how this could result from subtype polymorphism, with no overloading or coercion.


User generated content is uploaded by users for the purposes of learning and should be used following Studypool's honor code & terms of service.

Explanation & Answer

#include <string>

class PlMessageHeader
{
std::string m_ThreadSender;
std::string m_ThreadReceiver;

//return true if the messages are equal, false otherwise
inline bool operator == (const PlMessageHeader &b) const
{
return ( (b.m_ThreadSender==m_ThreadSender) &&
(b.m_ThreadReceiver==m_ThreadReceiver) );
}

//return true if the message is for name
inline bool isFor (const std::string &name) const
{
return (m_ThreadReceiver==name);
}

//return true if the message is for name
inline bool isFor (const char *name) const
{
return (m_ThreadReceiver==name);// since name type is std::string, it becomes unsafe if name == NULL
}
};


Anonymous
Really useful study material!

Studypool
4.7
Trustpilot
4.5
Sitejabber
4.4

Related Tags