• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

Mr.CodeHunter

Programming and Code Solutions

  • Home
  • C++
  • About Us
  • Contact Us
  • Privacy Policy

c++ expression must have class type [SOLVED]

May 30, 2021 by Admin Leave a Comment

In c++ whenever you are calling any function of class then there might be possibility that you came across error for c++ expression must have class type. For resolving expression must have class type error you need to check that if you have class pointer then you need to use -> and if you have class object then you need to use dot(.).

Possible solutions for expression must have class type error
#include <iostream>
using namespace std;

class A{
 public:
  void PrintMsg(){
      cout<<"Hello MrCodeHunter.com";
  }
    
};

int main()
{
    A *ptr = new A();
    ptr.PrintMsg(); // Error is here
    
    return 0;
}

Output:

c++ expression must have class type error

Here we are getting error for Expression must have class type, the reason is we are using dot(.) operator for calling function of class. But we are using pointer of class. We need to make sure when we are using pointer of class then we need to use -> operator to call function.

Solution for expression must have class type error c++

int main()
{
    A *ptr = new A();
    ptr->PrintMsg();
    // Need to use -> for calling function
    
    return 0;
}

Here we are using class pointer so instead of dot(.) operator we need to use -> operator.

If you are using pointer and then want to call using dot(.) then also it is possible.

    A *ptr = new A();
    (*ptr).PrintMsg();

Here you are using (*ptr) for calling function using dot(.) which is valid scenario and your error for expression must have class type will be removed by this change also.

int main()
{
    A obj;
    obj.PrintMsg();
    //Create object of class and call function using dot(.)
    return 0;
}

If we are using class object then we can directly call class function using dot(.).

For more c++ related solutions are articles please check our website. I hope given detail will be useful for you to resolve error for expression must have class type if still you are getting error please add you comment, we will try to help you. Happy Coding ๐Ÿ™‚

Filed Under: All C++, C++

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Search here

Social Media

  • Facebook
  • YouTube

SEE MORE

Fibonacci sequence c++

Fibonacci Sequence c++ is a number sequence which created by sum of previous two numbers. First two number of series are 0 and 1. And then using these two number Fibonacci series is create like 0, 1, (0+1)=1, (1+1)=2, (2+1)=3, (2+3)=5 …etc Displaying Fibonacci Series in C++ ( without recursion) Output: From given output we […]

map c++

C++ Map [Learn by Example]

C++ map is part of Standard Template Library (STL). It is type of Associative container. Map in c++ is used to store unique key and it’s value in data structure. But if you want to store non-unique key value then you can use Multi Map in c++. Let us first understand in detail what is […]

how to copy paste in turbo c++ ?

There are many different C++ IDE are available but still many students are using Turbo c++ for learning c/c++ programming languages. During using Turbo c++ if you are beginner you will be confuse for how to copy and paste in turbo c++ or if you have already copy some content and you want to paste […]

C++

return 0 c++

There are two different scenario return statement is used inside c++ programming. We can use return 0 c++ inside main() function or other user defined functions also. But both have different meanings. return 0 c++ used inside Main function return 0 c++ used inside other user defined function What is meaning of return 0 and […]

C++

c++ expected a declaration [ SOLVED]

When any function or statement is not in scope or we have used wrong syntax then possibly you will get error for c++ expected a declaration in your code. Main reasons for errors are: Incorrect use/declaration inside namespace Statements are added out of scope Required statement need to add inside main/function Solution-1 | Expected a […]

C++

c++ cannot open source file “errno.h” [SOLVED]

Normally you will face c++ cannot open source file “errno.h” in MS Visual Studio c++ projects. These are some solutions to remove opening errors for “errno.h” file. I got the errors to go away by installing the Windows Universal CRT SDK component, which adds support for legacy Windows SDKs. You can install this using the […]

Footer

DISCLAIMER

The information contained on https://www.mrcodehunter.com is for general information purposes only. We assumes no responsibility for errors or omissions in the contents on the Service.

SITEMAP XML

Sitemap

Recent

  • Fibonacci sequence c++
  • C++ Map [Learn by Example]
  • how to copy paste in turbo c++ ?
  • return 0 c++
  • c++ expected a declaration [ SOLVED]

Search

Copyright © 2025 ยท Mr Code Hunter