I'm having a little problem with a conversion error during compile. Here is the code:

#include <iostream>
using namespace std;

class costOfItem 
	costOfItem(float i_cost);
	void printMe();

	  const float price;

// Free functions
void displayPrice(costOfItem z)  { z.printMe(); }
void displayRefPrice(costOfItem &z) { z.printMe(); }
void displayConstRef(const costOfItem &z) { z.printMe(); }

Now in the last line it gives me the error cannot convert 'this' pointer from const costOfItem to costOfItem conversion loses qualifiers. I'm assuming there is a problem with the current instance of the object (which I believe is what 'this' points to, please correct me if I'm wrong about that) and it seems to be trying to convert it to a non const. What seems to be the problem and how do I fix it?

8 Years
Discussion Span
Last Post by dougy83

Do you mean to add the const portion in the member function definition of printMe? And am I right about the 'this' portion of what I posted?


Both the member function declaration and definition will require the const modifier. This tells the compiler that the function is an 'inspector' function and will not modify anything in the object (which is required when using a const object).

About your 'this' question, 'this' is a pointer to the instance of the object.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.