So I'm new to C++ and I have ran into some issues when using multiple classes and header files. To start off, here is my code:
Main
#include "stdafx.h"
#include "Person.h"
#include <string>
int main()
{
using namespace std;
string city1 = "lund";
Person p1(city1);
getchar();
return 0;
}
Address Header
#pragma once
class Address
{
public:
string city;
Address(string const& city);
~Address();
};
Address Cpp
#include "stdafx.h"
#include "Address.h"
#include <iostream>
using namespace std;
string city;
Address::Address(string const& city) : city(city)
{
cout << "Address created" << endl;
}
Address::~Address()
{
cout << "Address destroyed" << endl;
}
Person Header
#pragma once
class Person
{
public:
Address *address;
Person(string const& city);
~Person();
};
Person cpp
#include "stdafx.h"
#include "Address.h"
#include "Person.h"
#include <iostream>
#include <string>
using namespace std;
Address *address;
Person::Person(string const& city)
{
address = new Address(city);
cout << "Person created" << endl;
}
Person::~Person()
{
delete address;
cout << "Person destroyed" << endl;
}
Now I'm so lost beacuse I got 16 errors from this code!
Severity Code Description Project Path File Line Suppression State
Error C2143 syntax error: missing ';' before '*' cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\person.h 6
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\person.h 6
Error C2238 unexpected token(s) preceding ';' cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\person.h 6
Error C2061 syntax error: identifier 'string' cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\person.h 8
Error C2664 'Person::Person(const Person &)': cannot convert argument 1 from 'std::string' to 'const Person &' cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\cplusplusmodule7.cpp 15
Error C3646 'city': unknown override specifier cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\address.h 5
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\address.h 5
Error C2061 syntax error: identifier 'string' cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\address.h 7
Error C2061 syntax error: identifier 'string' cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\person.h 8
Error C2511 'Person::Person(const std::string &)': overloaded member function not found in 'Person' cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\person.cpp 11
Error C2664 'Address::Address(const Address &)': cannot convert argument 1 from 'const std::string' to 'const Address &' cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\person.cpp 12
Error C3646 'city': unknown override specifier cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\address.h 5
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\address.h 5
Error C2061 syntax error: identifier 'string' cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\address.h 7
Error C2511 'Address::Address(const std::string &)': overloaded member function not found in 'Address' cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\address.cpp 8
Error C2550 'Address::{ctor}': constructor initializer lists are only allowed on constructor definitions cplusplusModule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7 c:\users\station\documents\visual studio 2017\projects\cplusplusmodule7\cplusplusmodule7\address.cpp 9
The errors include that I'm missing a ';' before Address *address
which I don't understand. String isn't found everywhere and the constructor of Person isn't callable with a string.