Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > problem with multiple inheritance

Reply
Thread Tools

problem with multiple inheritance

 
 
Tony Johansson
Guest
Posts: n/a
 
      08-16-2005
Hello experts!

I have a small program that is using multiple inheritance.
There are 4 classes involved
I get 4 compile error that I can't figure out why.
It's this row which is located in the main program see below that is causing
these compile errors.
cout << p[i]->getName() << endl;
Here is the first compile error the other might be a consequesce of the
first one.
c:\Documents and Settings\Tony\kau\cplusplus\test4\start.cpp(13): error
C2446: '<' : no conversion from 'std::vector<_Ty>::size_type (__thiscall
std::vector<_Ty>::* )(void) const' to 'int'
with
[
_Ty=Person *
]

Here are all the class definitions
*********************
#include <string>
using namespace std;
class Person
{
public:
Person(string nn = "default") : name(nn) {}
string getName() const
{
return name;
}
private:
string name;
};

class Student : public virtual Person
{
public:
Student(string nn="default") : Person(nn) {}
};

class Employee : public virtual Person
{
public:
Employee(string nn="default") : Person(nn) {}
};

class TeachingAssistent : public Student, public Employee
{
public:
TeachingAssistent(string nn="default") : Person(nn) {}
};

Here is main program
****************
#include <vector>
#include "person.h"
#include <iostream>
using namespace std;

int main()
{
vector<Person *> p;
p.push_back(new Student);
p.push_back(new Employee);
p.push_back(new TeachingAssistent);

for(int i=0; i < p.size; i++)
cout << p[i]->getName() << endl;

return 0;
}

Many thanks

//Tony


 
Reply With Quote
 
 
 
 
Victor Bazarov
Guest
Posts: n/a
 
      08-16-2005
Tony Johansson wrote:
> [...]
> for(int i=0; i < p.size; i++)


If you intend to find the size of the vector, you need to _call_ the
function 'size'. For that you need to supply the parentheses:

... i < p.size() ...

> cout << p[i]->getName() << endl;
>
> return 0;
> }


V
 
Reply With Quote
 
 
 
 
Serge Paccalin
Guest
Posts: n/a
 
      08-16-2005
Le mardi 16 août 2005 à 21:16:49, Tony Johansson a écrit dans
comp.lang.c++*:

> Hello experts!
>
> I have a small program that is using multiple inheritance.
> There are 4 classes involved
> I get 4 compile error that I can't figure out why.
> It's this row which is located in the main program see below that is causing
> these compile errors.
> cout << p[i]->getName() << endl;


Actually, no, it's *this* line:

for(int i=0; i < p.size; i++)

> Here is the first compile error the other might be a consequesce of the
> first one.
> c:\Documents and Settings\Tony\kau\cplusplus\test4\start.cpp(13): error
> C2446: '<' : no conversion from 'std::vector<_Ty>::size_type (__thiscall
> std::vector<_Ty>::* )(void) const' to 'int'
> with
> [
> _Ty=Person *
> ]


You have a problem with the comparison: (error C2446: '<') because
you're comparing an int (i) with a function pointer (p.size). 'size' is
not a piece of data, but a function; you want this:

for (int i=0; i < p.size(); i++)

>
> for(int i=0; i < p.size; i++)
> cout << p[i]->getName() << endl;



--
___________ 16/08/2005 21:29:42
_/ _ \_`_`_`_) Serge PACCALIN -- sp ad mailclub.net
\ \_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763
 
Reply With Quote
 
Ruwen Schnabel
Guest
Posts: n/a
 
      08-16-2005
Hi,

your problem is not related to multiple inheritance at all. The problem is
that you forgot the brackets behind the function call p.size() in the for
loop.

Greetings,
Ruwen

"Tony Johansson" <(E-Mail Removed)> schrieb im Newsbeitrag
news:BYqMe.31661$(E-Mail Removed)...
> Hello experts!
>
> I have a small program that is using multiple inheritance.
> There are 4 classes involved
> I get 4 compile error that I can't figure out why.
> It's this row which is located in the main program see below that is
> causing these compile errors.
> cout << p[i]->getName() << endl;
> Here is the first compile error the other might be a consequesce of the
> first one.
> c:\Documents and Settings\Tony\kau\cplusplus\test4\start.cpp(13): error
> C2446: '<' : no conversion from 'std::vector<_Ty>::size_type (__thiscall
> std::vector<_Ty>::* )(void) const' to 'int'
> with
> [
> _Ty=Person *
> ]
>
> Here are all the class definitions
> *********************
> #include <string>
> using namespace std;
> class Person
> {
> public:
> Person(string nn = "default") : name(nn) {}
> string getName() const
> {
> return name;
> }
> private:
> string name;
> };
>
> class Student : public virtual Person
> {
> public:
> Student(string nn="default") : Person(nn) {}
> };
>
> class Employee : public virtual Person
> {
> public:
> Employee(string nn="default") : Person(nn) {}
> };
>
> class TeachingAssistent : public Student, public Employee
> {
> public:
> TeachingAssistent(string nn="default") : Person(nn) {}
> };
>
> Here is main program
> ****************
> #include <vector>
> #include "person.h"
> #include <iostream>
> using namespace std;
>
> int main()
> {
> vector<Person *> p;
> p.push_back(new Student);
> p.push_back(new Employee);
> p.push_back(new TeachingAssistent);
>
> for(int i=0; i < p.size; i++)
> cout << p[i]->getName() << endl;
>
> return 0;
> }
>
> Many thanks
>
> //Tony
>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
inheritance, multiple inheritance and the weaklist and instance dictionaries Rouslan Korneychuk Python 8 02-10-2011 04:02 AM
Interface inheritance vs Implementation inheritance. Daniel Pitts Java 27 02-27-2008 01:37 AM
Private Inheritance and Publice Inheritance karthikbalaguru C++ 9 09-10-2007 01:05 PM
mul. inheritance & overloading operator new/delete solved by virtual base inheritance? cppsks C++ 0 10-27-2004 07:49 PM
Private access modifier and Inheritance (Inheritance implementation in Java) maxw_cc Java 1 12-21-2003 11:38 AM



Advertisments