これまでdgraphオブジェクトを作成しようとしたとき、コンパイルエラーが発生しましたが、 dgraphオブジェクトを作成する行。助けてください!ありがとう。これは私のdgraph.hあるクラスオブジェクトを作成するとき、「エラー:リンカーコマンドが終了コード1で失敗しました」
#include<iostream>
#include"dgraph.h"
using namespace std;
int main()
{
string test;
test = "Hello, world!";
cout << test << endl;
slist L1;
L1.displayAll();
dgraph L2; //offending line
return 0;
}
:
この
はmain.cppにある#include <iostream>
#include <string>
#include "slist.h"
using namespace std;
const int SIZE = 20;
struct Gvertex
{
char vertexName; //the vertex Name
int outDegree; //the Out degree
slist adjacentOnes; //the adjecent vertices in an slist
int visit; // This will hold the visit number in HW7
};
class dgraph
{
private:
Gvertex Gtable[SIZE]; // a table representing a dgraph
int countUsed; // how many slots of the Gtable are actually used
public:
class BadVertex {}; // thrown when the vertex is not in the graph
dgraph();
~dgraph();
void fillTable();
void displayGraph();
int findOutDegree(char);
slist findAdjacency(char);
};
dgraph.cpp:私はG ++ -cその後、使用してコンパイルしています
#include<iostream>
#include<fstream>
#include"dgraph.h"
void dgraph::fillTable()
{
ifstream fin;
fin.open("table.txt");
while(fin >> Gtable[countUsed].vertexName) //if you can read the name
{
char x; //temp var
fin >> Gtable[countUsed].outDegree;
for (int i = 0; i < Gtable[countUsed].outDegree; ++i)
{
fin >> x;
Gtable[countUsed].adjacentOnes.addRear(x);
}
countUsed++;
}
fin.close();
}
g ++ -oを使用してすべてのファイルをリンクします。 は、ここで私は、コンパイル時に私が得る正確なエラーです:
g++ -o run hw6Client.o dgraph.o llist.o slist.o
Undefined symbols for architecture x86_64:
"dgraph::~dgraph()", referenced from:
_main in hw6Client.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
dgraph.cppについてはどうですか? –
元の投稿をdgraph.cppで更新しました。 – airrrforceones
'dgraph.cpp'には、ほとんどのメンバ関数の実装がありません。 – Barmar