1. ホーム
  2. c++

[解決済み] C++エラー: `main'への未定義の参照

2022-03-02 22:07:41

質問

簡単なクラスListを作成していますが、ヘッダーとcppファイルをコンパイルすると、error: undefined reference to `main' と表示されます。

何が間違っているのか、どうすれば直るのか?

以下は単純なヘッダを持つlist.hファイルです。

list.h

#ifndef LIST_H
#define LIST_H

#include <string>

const int DEFAULT_CAPACITY = 100;

class List
{
    public:
        List();
        List(int capacity);
        ~List();
        void push_back(std::string s);
        int size() const;
        std::string at(int index) const;

    private:
        std::string* mData;
        int mSize;
        int mCapacity;
};

#endif

そして、これがlist.cppファイルです。

リスト.cpp

#include "list.h"
#include <string>

List::List(){
    mData = new std::string[DEFAULT_CAPACITY];
    mSize = 0;
    mCapacity = 100;
};

List::List(int capacity){
    mData = new std::string[capacity];
    mSize = 0;
    mCapacity = capacity;
};

List::~List(){
    delete[] mData;
};

void List::push_back(std::string s){
    if (mSize<mCapacity){
        mData[mSize] = s;
        mSize++;
    }
};

int List::size() const{
    return mSize;
};

std::string List::at(int index) const{
    return mData[index];
};

namespace std"を使ってみたり、includeの方法を試してみましたが、これらのエラーをなくす方法がわかりません。何が原因なのでしょうか?

解決方法は?

main()への未定義参照は、すべてのC++プログラムに必須であるmain()関数がないことを意味します。これをどこかに追加してください。

int main()
{
  return 0;
}