-3

Scanner、Table、Readerの3つのクラスがあります。Scanner はテーブルに情報を追加し、Reader はテーブルから読み取ります。では、どこでテーブル変数を宣言すればよいでしょうか? .hでやったのですが、ダブルインクルードのミスがありました。

4

3 に答える 3

-1

複数の定義に問題があるようです。各ヘッダーの上部で使用し、各 C++ クラスをヘッダーとフッターに含めます。

#pragma once
class Name {}
//or
#ifndef __CLASS_NAME_H__
#define __CLASS_NAME_H__
class Name { }
#endif

すなわち

//Scanner.h
#pragma once //<---------- must use it so you do not have double include..
class Table; //forward decalre reduced dependendcy and no need to include h.
class Scanner {
    int ReadIntoTable(Table* pInTable);
}

//Scanner.cpp
// has method bodies that uses Table like   
#include "Table.h"
int Scanner::ReadIntoTable(Table* pInTable)
{
   pInTable->putData(123);
   return void.
}

//Table.h
#pragma once //<-------- use so you do not have double include.
class Table {
   getData();
   putData(int Data);
}

//Table.cpp 
// impelenation for table
于 2013-05-20T14:56:13.273 に答える