• 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

[SOLVED] c++ a nonstatic member reference must be relative to a specific object

June 13, 2021 by Admin Leave a Comment

In c++ class if we want to call any function then we can call it by creating object. But if function is static, then we can call by ClassName::FunctionName. If non-static function we are call by class::function then it will give error of c++ a nonstatic member reference must be relative to a specific object.

c++ a nonstatic member reference must be relative to a specific object
call static and non-static member function
#include <iostream>
using namespace std;

class A {
public:
	static void Print();
	void Show();
};

void A::Print() {
	cout << "Print" << endl;
}

void A::Show() {
	cout << "Show" << endl;
}

int main() {
	// Static call by ClassName::Func()
	A::Print();

	// error C2352: 'A::Show': illegal call of non-static member function
	A::Show();

	// Non Static call by Obj
	A obj;
	obj.Show();

	return 0;
}

How to Solve this Error ?

  1. You can create Show() function as static function and then call it by class name and scope resolution(::)
  2. You can create class object and then call function by objectName.Function()

Why Static function require to call using scope resolution(::) ?

For static function we need to call function by ClassName::Function, because static function is not attached to particular object. So they does not contain this pointer (*this). Static member functions can directly access to any of other static members variables or functions , but it can not access other non-static members. This is because all non-static functions are attached with object of class so we will require to call it using object.Func.

Conclusion:

Whenever we are getting c++ a nonstatic member reference must be relative to a specific object error in our program we need to use class object to call it or we can make particular function as static, everything is depend on requirement of our code and project.

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