0

いくつかの C++ を開始したくて、これらの単純なクラスを作成しました。

Ellipsoid.h

#ifndef __Ellipsoid__Ellipsoid__
#define __Ellipsoid__Ellipsoid__

#include <iostream>
#include <cassert>


class Ellipsoid {
private:
    double axisA;
    double flatteningF;

public:
    Ellipsoid() {};
   Ellipsoid(double aIn, double fIn);
    double getAxisA();
    double getFlatteningF();



};

#endif /* defined(__Ellipsoid__Ellipsoid__) */

Ellipsoid.cpp

#include "Ellipsoid.h"


Ellipsoid::Ellipsoid (double aIn, double fIn) : axisA(aIn), flatteningF(fIn) {};

int main() {
    std::cout << "bla";
    Ellipsoid el = Ellipsoid(44.3, 32);
    double test = el.getAxisA();


    return 0;
}

ここでは特別なことは何も見えません。私はosx10.8でxcodeを使用しています。しかし、プログラムを実行すると、このエラーが発生します: アーキテクチャ x86_64 の未定義シンボル: "Ellipsoid::getAxisA()"、参照元: Ellipsoid.o ld の _main: アーキテクチャ x86_64 のシンボルが見つかりません。何が悪いのかわからない。アーキテクチャを 32 ビットに設定しようとしましたが、これも機能しません

4

1 に答える 1

0

関数の定義がEllipsoid::getAxisA()ありません。どこかで定義する必要があります。現在、定義ではなく、宣言のみがあります。定義は次のようになります。

double Ellipsoid::getAxisA() { return axisA; }

そしてEllipsoid.cppに住んでいます。

于 2012-10-29T19:42:49.153 に答える