Переопределение членов не допускается в Visual Studio 2019 (тот же код успешно скомпилирован в VS 2013) - PullRequest
0 голосов
/ 12 марта 2020

При переходе с Visual Studio 2013 на компилятор Visual Studio 2019 я получил ошибку ниже. Пожалуйста, помогите мне исправить то же самое.

Я объявил функцию в файле заголовка (.h) ниже:

#ifndef CSAHCCOMPOSEDITEM_H
#define CSAHCCOMPOSEDITEM_H

#ifdef _UTEST
class CsaHcDICOMComposerTester;
#endif

class EXP_IMP_HcDicComp CsaHcComposedItem
{
#ifdef _UTEST
friend class CsaHcDICOMComposerTester;
#endif

public:

enum CsaHcComposedItemType
{
CISegment,
CIPage,
CILayout,
CIPageBracket,

CIPrintJobBracket,

CIDummy
};

CsaHcComposedItem
(bool &status, CsaHcComposedItemType type_in);

CsaHcComposedItem
();

CsaHcComposedItem a
(const CsaHcComposedItem& compObj_in);

CsaHcComposedItem& operator=
(const CsaHcComposedItem& compObj_in);

~CsaHcComposedItem();

bool operator==
(const CsaHcComposedItem& ci_in);

private: // attributes

CsaHcComposedItemType
myType;
CsaHcBasicFilmSession
*myBFS;
CsaHcBasicFilmBox
*myBFB;
CsaHcBasicImageBox
*myBIB;
CsaDib  *myDib;
BYTE *myPixelArray;
};

#endif // CSAHCCOMPOSEDITEM_H
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

И файл cpp содержит определение для конструктора.

// код pusedo

CsaHcComposedItem::CsaHcComposedItem(bool &status_out,
// Return status of the construcor
CsaHcComposedItemType type_in)
// Composed item type
: myType(type_in), // error shown for this line (70)
myBFS(NULL), //line71
myBFB(NULL),
myBIB(NULL),
myDib(NULL),
myPixelArray(NULL)
{
.....
}

Ошибка:

1.CsaHcComposedItem. cpp (70): ошибка C2761: '{ctor}': переопределение члена запрещено необъявленный идентификатор 4.CsaHcComposedItem. cpp (70): ошибка C4430: отсутствует указатель типа - предполагается int. Примечание: C ++ не поддерживает default-int 5.CsaHcComposedItem. cpp (71): ошибка C4430: отсутствует указатель типа - предполагается, что int. Примечание: C ++ не поддерживает default-int 6.CsaHcComposedItem. cpp (72): ошибка C4430: отсутствует указатель типа - предполагается, что int. Примечание. C ++ не поддерживает default-int 7.CsaHcComposedItem. cpp (73): ошибка C4430: отсутствует указатель типа - предполагается, что int. Примечание: C ++ не поддерживает default-int 8.CsaHcComposedItem. cpp (74): ошибка C4430: отсутствует указатель типа - предполагается, что int. Примечание: C ++ не поддерживает default-int 9.CsaHcComposedItem. cpp (75): ошибка C4430: отсутствует указатель типа - предполагается, что int. Примечание. C ++ не поддерживает default-int 10.CsaHcComposedItem. cpp (78): ошибка C2448: «myPixelArray»: инициализатор стиля функции выглядит как определение функции

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Проблема исправлена, ниже строка кода не была прокомментирована в моем cpp файле, после комментирования это сработало.


0 голосов
/ 12 марта 2020

Этот источник скомпилирован без ошибок в VS2019 (16.4.5)

Я скомпилировал эти объявления


#include <Windows.h>

#define EXP_IMP_HcDicComp

using CsaHcBasicFilmSession = int;
using CsaHcBasicFilmBox = int;
using CsaHcBasicImageBox = int;
using CsaDib = int;

enter image description here

...