Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6785021
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T17:04:22+00:00 2026-05-26T17:04:22+00:00

The purpose of an abstract class is not to let the developers create an

  • 0

The purpose of an abstract class is not to let the developers create an object of the base class and then upcast it, AFAIK.

Now, even if the upcasting is not required, and I still use it, does it prove to be “disadvantageous” in some way?

More clarification:
From The Thinking in C++:

Often in a design, you want the base class to present only an
interface for its derived classes. That is, you don’t want anyone to
actually create an object of the base class, only to upcast to it so that
its interface can be used. This is accomplished by making that class
abstract,

By upcasting, I meant: baseClass *obj = new derived ();

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T17:04:23+00:00Added an answer on May 26, 2026 at 5:04 pm

    Upcasting can be disadvantageous for non polymorphic classes. For example:

    class Fruit { ... };  // doesn't contain any virtual method
    class Apple : public Fruit { ... };
    class Blackberry : public Fruit { ... };
    

    upcast it somewhere,

    Fruit *p = new Apple;  // oops, information gone
    

    Now, you will never know (without any manual mechanism) that if *p is an instance of an Apple or a Blackberry.

    [Note that dynamic_cast<> is not allowed for non-polymorphic classes.]

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

For my understanding purpose i have implemented Chain-Of-Responsibility pattern. //Abstract Base Type public abstract
I'd like to create a generic class with type parameter T which then creates
I have the following idea: Business object implemented as interface or abstract class with
class ABC is an abstract base class. class X is its subclass. There's some
Please could someone advise? We have an abstract base class with a few properties
I would like to know what purpose a constructor for an abstract class serves;
I've overridden Equals and GetHashCode in an abstract base class to implement value equality
Ok, so here is what I have: an abstract Object class which I made
Purpose: I plan to Create a XML file with XmlTextWriter and Modify/Update some Existing
I have an abstract class A that define abstract methods. This means that, for

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.