Your header file with class student_Example
doesn’t promise a constructor. (And seems to be missing and #endif
)
#ifndef STUDENT_EXAMPLE_H #define STUDENT_EXAMPLE_H #include <iostream> #include <string> class student_Example { public: student_Example(char nam, int marc1, int marc2); //<-- as pointed out in the error char name; int mark1, mark2; int calc_media(){ return (mark1+mark2/2); } void disp(){ std::cout<< " The student named: "<< name<< "\n has an average score equal to: " << calc_media()<<"\n"; } }; #endif //<-- this too
While we are there we can use an member initialiser list in the constructor
student_Example::student_Example(char nam, int marc1, int marc2) : name(nam), mark1(marc1), mark2(marc2) //assume maerc2 was a typo { }
Edit: Note that student_Example(char nam, int marc1, int marc2)
is a declaration that you will define a constructor taking a char
and two int
s., which you have done in your cpp file.
You can make an object like this
student_Example example('n', 1, 2);
Without this non-default constructor, a default constructor taking no parameters would have been automatically generator for you, so you could have made an object like this:
student_Example example;
Now you have defined a constructor that will no longer happen. You either need to add this to your class, or make sure you use the constructor taking parameters.