C/C++ Fixing a 'Invalid use of Member' Error in C++

  • Thread starter Thread starter lewis198
  • Start date Start date
  • Tags Tags
    C++ Error Member
Click For Summary
The discussion revolves around issues encountered while defining and using a class in C++. The user successfully declares a class with public members and member functions that compute values based on these members. However, errors arise when trying to assign values to the members and call a member function in the main program. Key points include the need to instantiate the class correctly and assign values to its members using the object reference (e.g., x.member1=value). Additionally, the correct way to call a member function is by using parentheses (e.g., printf("%d", x.member_function())). It is also noted that a semicolon is required after the class declaration, and members must be declared as public to be accessible outside the class.
lewis198
Messages
95
Reaction score
0
Hi guys, I was wondering if you could help me with the following:

1.I declare a class, then put public members into it.
2.Then I make member functions that return values that are computed from the values of other members. These functions would have no input, I guess, so I gave them none. I can actually compile up to this point.
3.Then I went onto the main part of the program, int main, and defined a class, and gave the members that are part of the other member functions values. I thought this would then give me a function that I could print values off, but when I tried to, the error message was:

'invalid use of member. Did you forget the '&'?'



The file looks like this:

class name
{

member 1
member 2
member n

member_function()
{}

}

int main()
{

class name x;
member1=value;
member2=value;
member3=value;

printf("%d",x.member_function);
}



Thanks for your time.
 
Technology news on Phys.org
#3 should read:

3.Then I went to the main part of the program, int main(), instantiated a class, and gave the properties of that class, their proper values.
 
Hi Ho!

Code:
member1=value;
member2=value;
member3=value;

It should be:
Code:
x.member1=value;
x.member2=value;
x.member3=value;
because they belong to the object, not to the class.

Also,
Code:
printf("%d",x.member_function);
should be
Code:
printf("%d",x.member_function());
because you invoke a method.Eus
 
Last edited:
Assuming this is C++, there's a ';" after the closing brace of the class declaration, and you need to declare the various members to be public as otherwise they are private by default.
 
thanks guys, appreciate it
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 22 ·
Replies
22
Views
3K
  • · Replies 35 ·
2
Replies
35
Views
4K
  • · Replies 6 ·
Replies
6
Views
12K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 17 ·
Replies
17
Views
3K
  • · Replies 25 ·
Replies
25
Views
2K
  • · Replies 25 ·
Replies
25
Views
3K