C2011 "...": проблема переопределения типа 'класс' C ++ - PullRequest
0 голосов
/ 12 ноября 2018

У меня небольшая проблема с моим кодом.Я пробовал около 20 сообщений, и ни одно решение не сработало.Может быть, это другая проблема.Я не знаю.Кто-нибудь может мне помочь?Я не могу передать его самостоятельно.

rootTe.h

#pragma once
class Root { 
public:
double a, b, c, x1, x2, x;

Root(double, double, double); //inline?

void roots(unsigned int);

double getX1();
double getX2();
double getX();
};

rootTe.cpp

#include <iostream>
#include <cmath>
#include "rootException.h" 
#include "rootTest.h"

class Root { 
public:
double a, b, c, x1, x2, x;

Root(double a2, double b2, double c2) {
    a = a2;
    b = b2;
    c = c2;
}

void roots(unsigned int m) {
    ...
}

double getX1() {
    return x1;
}

double getX2() {
    return x2;
}

double getX() {
    return x;
}
};

1 Ответ

0 голосов
/ 12 ноября 2018

Вы определяете класс Root дважды.

В C ++, используя отдельное объявление и определение, вы должны использовать следующий фрагмент:

#include "rootTest.h"

Root::Root(double a2, double b2, double c2) {
    a = a2;
    b = b2;
    c = c2;
}

void Root::roots(unsigned int m) {
    ...
}

И так далее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...