Ошибка: || === Сборка: отладка в Davis_project1 (компилятор: компилятор GNU GCC) === |Переопределение ошибки struct tm. Проблемы с заголовками
c: \ mingw \ include \ time.h | 172 | ошибка: переопределение 'struct tm' |
c: \ mingw \ include \ wchar.h | 87 | error: предыдущее определение 'struct tm' |
|| === Ошибка сборки: 2 ошибки, 0 предупреждение (ов) (0 минута, 0 секунд (ы)) === |
Моя программа работала полностью нормально, пока я не попытался добавить заголовок ctime для функции srand. С тех пор я получаю redefintion «struct tm» и предыдущее определение ошибок «struct tm». Интернет сообщает мне о проблеме с заголовком. Итак, вот все мои заголовки и cpp внизу. Любые советы. Ниже приведена моя главная cpp. Я думаю, что проблема здесь
#include <iostream>
#include <string>
#include "Club.h"
#include <ctime>
using namespace std;
int main(){
Club Club1;
Club1.displayMenu();
Club1.processInput();
}
Заголовок Cbros
#ifndef CBROS_H
#define CBROS_H
#include <iostream>
class Cbros
{
public:
Cbros();
//default constructor
Cbros(std::string , int , double);
std::string getName()const;
int getAge()const;
int getStr()const;
int getCharm()const;
int getIntel()const;
int getHeight()const;
void setName(std::string);
void setAge(int);
void setHeight(int);
void setIntel(int);
void setStr(int);
void setCharm(int);
void MeetGirl(int, int, int);
void GirlChance(int, int, int);
class Wallet{
public:
double addMoney(double amount);//Adds Money to wallet
double removeMoney(double amount);//removes money from wallet
int countMoney();//displays money in wallet
protected:
int money;
};
Wallet Mywallet;
protected:
std::string newName;
std::string newRace;
int newAge;
double newHeight;
int newStr;
int newInt;
int newCharm;
private:
};
#endif // CBROS
Cbros каст
#include "Cbros.h"
Cbros::Cbros()
{
}
Cbros::Cbros(std::string name ,int age , double height)
:newName(name),newAge(age),newHeight(height)
{
}
std::string Cbros::getName() const{
return newName;
}
int Cbros::getAge() const{
return newAge;
}
int Cbros::getHeight() const{
return newHeight;
}
int Cbros::getIntel() const{
return newInt;
}
int Cbros::getCharm() const{
return newCharm;
}
int Cbros::getStr() const{
return newStr;
}
void Cbros::setName(std::string name){
newName=name;
}
void Cbros::setAge(int age){
newAge=age;
}
void Cbros::setHeight(int height){
newHeight=height;
}
void Cbros::setCharm(int charm){
newCharm=charm;
}
void Cbros::setIntel(int intel) {
newInt=intel;
}
void Cbros::setStr(int str){
newStr=str;
}
double Cbros::Wallet::addMoney(double amount){if (amount < 0)
return 0;
money += amount;
return amount;
}
double Cbros::Wallet::removeMoney(double amount) {
if ((amount < 0) || (money < amount))
return 0;
money -= amount;
return amount;
}
int Cbros::Wallet::countMoney() {
return money;
}
void Cbros::MeetGirl(int newStr, int newCharm, int newInt){
if (newHeight>=60){
std::cout<<"Mmmm I like my men tall, Hi, I'm Brittany";
}
}
void Cbros::GirlChance(int newStr, int newCharm, int newInt){
}
клуб Заголовок
#ifndef CLUB_H
#define CLUB_H
#include "Cbros.h"
class Club: public Cbros
{
public:
Club();
int displayMenu();
void processInput();
int menuSelection;
protected:
private:
};
#endif // CLUB_H
клуб каст
class Cbros;
class Jock;
class Artsy;
class Engineering;
#include "Club.h"
Club::Club()
{}
int Club::displayMenu(){
std::cout<<"Welcome Meet a Girl Game!"<<std::endl;
std::cout<<"The goal is to use your inherent skills to earn a girl's phone number\n\n";
std::cout<<"Please enter the number of your choice:\n\n";
std::cout<<"1. Go the Club\n";
std::cout<<"2. Stay at Home\n";
std::cin>>menuSelection;
return menuSelection;
}
void Club::processInput(){
while (menuSelection!=1&&menuSelection!=2){
std::cout<<"invalid choice\n"<<displayMenu();
}
if (menuSelection==1){
std::cout<<"Are you a\n";
std::cout<<"1. Engineer Bro?\n";
std::cout<<"2. Artsy Bro?\n";
std::cout<<"3. Jock Bro?\n";
std::cin>>menuSelection;
switch(menuSelection){
case 1:{
std::cout<<"Welcome Engineer Bro\n";
std::cout<<"Please enter your name:";
std::cin.ignore();
std::getline(std::cin, newName);
std::cout<<"Please enter your Height(in inches):";
std::cin>>newHeight;
std::cout<<"Please enter your Age:";
std::cin>>newAge;
Cbros Engine(newName, newAge, newHeight);
Engine.setCharm(3);
Engine.setStr(3);
Engine.setIntel(6);
std::cout<<std::string(20,'\n');
std::cout<<"Class: Engineer\n";
std::cout<<"Name: "<<Engine.getName()<<std::endl;
std::cout<<"Height: "<<Engine.getHeight()<<std::endl;
std::cout<<"Age "<<Engine.getAge()<<std::endl;
std::cout<<"Initial Stats"<<std::endl;
std::cout<<"Charm: "<<Engine.getCharm()<<std::endl;
std::cout<<"Strength: "<<Engine.getStr()<<std::endl;
std::cout<<"Intelligence: "<<Engine.getIntel() <<std::endl<<std::endl<<std::endl<<std::endl;
std::cout<<"Welcome to Club CSC 1310\n";
std::cout<<"No time to waste lets meet some girls!\n";
std::cout<<"Hmmm I think I see someone they may be your type over there";
Engine.MeetGirl(3,3,6);
break;
}
case 2:{
std::cout<<"Welcome Artsy Bro!\n";
std::cout<<"Please enter your name:";
std::cin.ignore();
std::getline(std::cin, newName);
std::cout<<"Please enter your Height(in inches):";
std::cin>>newHeight;
std::cout<<"Please enter your Age:";
std::cin>>newAge;
Cbros Artsy(newName, newAge, newHeight);
Artsy.setCharm(6);
Artsy.setStr(3);
Artsy.setIntel(3);
std::cout<<"Artsy Bro's Name: "<<Artsy.getName()<<std::endl;
std::cout<<"Height: "<<Artsy.getHeight()<<std::endl;
std::cout<<"Age "<<Artsy.getAge()<<std::endl;
std::cout<<"Initial Stats"<<std::endl;
std::cout<<"Charm: "<<Artsy.getCharm()<<std::endl;
std::cout<<"Strength: "<<Artsy.getStr()<<std::endl;
std::cout<<"Intelligence: "<<Artsy.getIntel()<<std::endl;
break;
}
case 3: {
std::cout<<"Welcome Jock Bro!\n";
std::cout<<"Please enter your name:";
std::cin.ignore();
std::getline(std::cin, newName);
std::cout<<"Please enter your Height(in inches):";
std::cin>>newHeight;
std::cout<<"Please enter your Age:";
std::cin>>newAge;
Cbros Jock(newName, newAge, newHeight);
Jock.setCharm(3);
Jock.setStr(6);
Jock.setIntel(3);
std::cout<<"Jock Bro's Name: "<<Jock.getName()<<std::endl;
std::cout<<"Height: "<<Jock.getHeight()<<std::endl;
std::cout<<"Age "<<Jock.getAge()<<std::endl;
std::cout<<"Initial Stats"<<std::endl;
std::cout<<"Charm: "<<Jock.getCharm()<<std::endl;
std::cout<<"Strength: "<<Jock.getStr()<<std::endl;
std::cout<<"Intelligence: "<<Jock.getIntel()<<std::endl;
break;
}
default:
break;
}
}
else if(menuSelection==2){
std::cout<<"Enjoy Netflix Bro";}
}
Три других производных класса от Cbros, все они имеют одинаковые настройки .h и .cpp, как показано ниже.
Jock Header
#ifndef JOCK_H
#define JOCK_H
#include "Cbros.h"
Джок каст
#include "Jock.h"
jock::Jock()
{
}
Инженер Header
#ifndef ENGINEERING_H
#define ENGINEERING_H
#include "Cbros.h"
Инженер каст
class Engineering: public Cbros
{
public:
Engineering();
protected:
private:
};
Artsy Заголовок
#ifndef ARTSY_H
#define ARTSY_H
#include "Cbros.h"
class Artsy : public Cbros
{
public:
Artsy();
protected:
private:
};
#endif // ARTSY_H
Artsy каст
#include "Artsy.h"
Artsy::Artsy()
{
}
Отключить тему: Обычная nag. Это 2016. Время положить 'srand' в постель. [Используйте '' вместо.] (Http://en.cppreference.com/w/cpp/numeric/random) –
user4581301
Стоит другое редактирование для сужения вещей, до которых файл cpp отказывается компилировать слишком много 'struct tm' s. – user4581301
Всякий раз, когда я генератор случайных чисел Google, его пример я получаю.Я рассмотрю. Благодаря! –