Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Ошибка


Автор: xTr1m 10.11.2005, 14:56
Файл Main.h
Код

#include "afxwin.h"
#include "afxmt.h"
#include "afxcmn.h"
#include "CMyMassive.cpp"





#define IDC_BSTART 100
#define IDC_BCLOSE 101
#define IDC_PTHREAD 102


//------------------------- Class CMyApp --------------------------


class CMyApp : public CWinApp    {

public :    virtual BOOL InitInstance();

                                };





Файл Main.cpp (реализация h)
Код

include "Main.h"



//-------------------------- Class CMyApp ---------------------

BOOL CMyApp::InitInstance ()
{
    m_pMainWnd = new CMyFrame();
    ASSERT(m_pMainWnd);    
    m_pMainWnd->ShowWindow(SW_SHOW);
    m_pMainWnd->UpdateWindow();    
    return TRUE;
}




Файл CMyMassive.cpp
Код

class CMyMassive    {
        
protected :    struct Node        {
                                int *row;        
                                int i;            // number of string
                                Node *next;
                                Node *prev;
                                Node(int n)    { row = new int[n]; };
                            };                    // Struct Node

            Node *head;
            Node *tail;
            int m;
            int n;

public :    CMyMassive();
            ~CMyMassive();
            void CreateMassive(int,int);
                            };                    // class CMyMassive






при запуске приложения выдается ошибка :
MyMassive.obj : error LNK2005: "public: __thiscall CMyMassive::CMyMassive(void)" (??0CMyMassive@@QAE@XZ) already defined in Main.obj
CMyMassive.obj : error LNK2005: "public: __thiscall CMyMassive::~CMyMassive(void)" (??1CMyMassive@@QAE@XZ) already defined in Main.obj
CMyMassive.obj : error LNK2005: "public: void __thiscall CMyMassive::CreateMassive(int,int)" (?CreateMassive@CMyMassive@@QAEXHH@Z) already defined in Main.obj
Debug/MyTask.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
Creating browse info file...

MyTask.exe - 4 error(s), 0 warning(s)


Что не так?

Автор: nikf 10.11.2005, 15:32
первое что бросается:
Цитата(xTr1m @ 10.11.2005, 14:56)
#include "CMyMassive.cpp"

можеть всетаки
#include "CMyMassive.h"

а это что:
Цитата

Файл CMyMassive.cpp
Код

class CMyMassive    {
        
protected :    struct Node        {
                                int *row;        
                                int i;            // number of string
                                Node *next;
                                Node *prev;
                                Node(int n)    { row = new int[n]; };
                            };                    // Struct Node
            Node *head;
            Node *tail;
            int m;
            int n;
public :    CMyMassive();
            ~CMyMassive();
            void CreateMassive(int,int);
                            };                    // class CMyMassive




Ты это в *.cpp пишешь? Объявляют классы обычно в *.h файлах, а реализацию их методов делают в *.cpp

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)