?
----
Here are my files (problem follows the code):
--------------------------------------------------------------------------
// Group.h
#ifndef GROUP_H
#define GROUP_H
class Group {
public:
// default constructor
Group(string groupName = "BLANK");
void setName(string name);
string getName();
protected:
string name;
};
#endif
---------------------------------------------------------------------------
//Group.cpp
#include <string>
using std::string;
#include "Group.h"
// default constructor
Group::Group(string groupName)
:name(groupName)
{
}
void Group::setName(string name)
{
this->name = name;
}
string Group::getName()
{
return this->name;
}
--------------------------------------------------------------
//Area.h
#ifndef AREA_H
#define AREA_H
#include "Group.h"
class Area : public Group {
public:
Area(string areaName = "BLANK", int population = 0);
void setPopulation(int population);
int getPopulation();
protected:
int population;
};
#endif
----------------------------------------------------------------------------
----
//Area.cpp
#include "Area.h"
Area::Area(string areaName, int population)
: Group(areaName), population(population)
{
}
void Area::setPopulation(int population)
{
this->population = population;
}
int Area::getPopulation()
{
return this->population;
}
----------------------------------------------------------------------------
-----
OK, I'm working on a larger project, but I was having problems with
inheritance. This is a stripped down example that I still can;t get to work.
I'm compiling it with Visual C++ 6.0. When I try to compile the above files,
I get the following:
\group.h(10) : error C2629: unexpected 'class Group ('
\group.h(10) : error C2238: unexpected token(s) preceding ';'
\group.h(12) : error C2061: syntax error : identifier 'string'
\group.h(13) : error C2146: syntax error : missing ';' before identifier
'getName'
\group.h(13) : error C2501: 'string' : missing storage-class or type
specifiers
\group.h(16) : error C2146: syntax error : missing ';' before identifier
'name'
\group.h(16) : error C2501: 'string' : missing storage-class or type
specifiers
\group.h(16) : error C2501: 'name' : missing storage-class or type
specifiers
\area.h(11) : error C2629: unexpected 'class Area ('
\area.h(11) : error C2238: unexpected token(s) preceding ';'
\area.cpp(5) : error C2065: 'string' : undeclared identifier
\area.cpp(5) : error C2146: syntax error : missing ')' before identifier
'areaName'
\area.cpp(5) : error C2350: 'Area::Area::Area' is not a static member
\area.cpp(5) : error C2059: syntax error : ')'
\area.cpp(6) : error C2065: 'population' : undeclared identifier
\area.cpp(6) : error C2448: '<Unknown>' : function-style initializer appears
to be a function definition
I don't understand what the problem is! I'm fairly new to C++, but I tried
to follow an example in a book (with my own source files, though) and it
won't work. I might try typing the files in from the book, but
syntactically, I think everything is the same. Any help would be
appreciated!
--------------------------------------------------------------------------
// Group.h
#ifndef GROUP_H
#define GROUP_H
class Group {
public:
// default constructor
Group(string groupName = "BLANK");
void setName(string name);
string getName();
protected:
string name;
};
#endif
---------------------------------------------------------------------------
//Group.cpp
#include <string>
using std::string;
#include "Group.h"
// default constructor
Group::Group(string groupName)
:name(groupName)
{
}
void Group::setName(string name)
{
this->name = name;
}
string Group::getName()
{
return this->name;
}
--------------------------------------------------------------
//Area.h
#ifndef AREA_H
#define AREA_H
#include "Group.h"
class Area : public Group {
public:
Area(string areaName = "BLANK", int population = 0);
void setPopulation(int population);
int getPopulation();
protected:
int population;
};
#endif
----------------------------------------------------------------------------
----
//Area.cpp
#include "Area.h"
Area::Area(string areaName, int population)
: Group(areaName), population(population)
{
}
void Area::setPopulation(int population)
{
this->population = population;
}
int Area::getPopulation()
{
return this->population;
}
----------------------------------------------------------------------------
-----
OK, I'm working on a larger project, but I was having problems with
inheritance. This is a stripped down example that I still can;t get to work.
I'm compiling it with Visual C++ 6.0. When I try to compile the above files,
I get the following:
\group.h(10) : error C2629: unexpected 'class Group ('
\group.h(10) : error C2238: unexpected token(s) preceding ';'
\group.h(12) : error C2061: syntax error : identifier 'string'
\group.h(13) : error C2146: syntax error : missing ';' before identifier
'getName'
\group.h(13) : error C2501: 'string' : missing storage-class or type
specifiers
\group.h(16) : error C2146: syntax error : missing ';' before identifier
'name'
\group.h(16) : error C2501: 'string' : missing storage-class or type
specifiers
\group.h(16) : error C2501: 'name' : missing storage-class or type
specifiers
\area.h(11) : error C2629: unexpected 'class Area ('
\area.h(11) : error C2238: unexpected token(s) preceding ';'
\area.cpp(5) : error C2065: 'string' : undeclared identifier
\area.cpp(5) : error C2146: syntax error : missing ')' before identifier
'areaName'
\area.cpp(5) : error C2350: 'Area::Area::Area' is not a static member
\area.cpp(5) : error C2059: syntax error : ')'
\area.cpp(6) : error C2065: 'population' : undeclared identifier
\area.cpp(6) : error C2448: '<Unknown>' : function-style initializer appears
to be a function definition
I don't understand what the problem is! I'm fairly new to C++, but I tried
to follow an example in a book (with my own source files, though) and it
won't work. I might try typing the files in from the book, but
syntactically, I think everything is the same. Any help would be
appreciated!