2012-04-19 9 views
0

Visual Studio 2010をC++で使用していて、プリコンパイル済みヘッダーオプションを「プリコンパイル済みヘッダーを使用しない」に設定していても、ヘッダーを無視することを主張しています。別のマシンでは、同じ設定でうまく動作します。これをどうすれば解決できますか?Visual Studio 2010でヘッダーの更新が行われない

のcomplex.h

#include <cmath> 
#include <cstdlib> 
using namespace std; 

class Complex{ 

private: 
    double real, imaginary, magnitude, angle; 
    double rectangularToMagnitude(double, double); 
    double rectangularToAngle(double, double); 
    double polarToReal(double, double); 
    double polarToImaginary(double, double); 
public: 
    Complex (char, double, double); 
    Complex (double, double); 
    Complex (double); 
    Complex(); 

    double getReal(); 
    double getImaginary(); 
    double getMagnitude(); 
    double getAngle(); 

    void setRectangular(double, double); 
    void setPolar(double, double); 
}; 

Complex.cpp

#include "Complex.h" 

// Three arguments passed, type and variables. 
Complex::Complex(char type, double a, double b) 
{ 
    switch(type) 
    { 
    case 'R': 
    case 'r': 
     setRectangular(a, b); 
     break; 
    case 'P': 
    case 'p': 
     setPolar(a, b); 
     break; 
    } 
} 

// Two arguments passed, assume rectangular. 
Complex::Complex (double a, double b) 
{ 
    real = a; 
    imaginary = b; 
    magnitude = rectangularToMagnitude(a, b); 
    angle = rectangularToAngle(a, b); 
} 

// One argument passed, assume real, used to cast double to complex. 
Complex::Complex (double a) 
{ 
    real = a; 
    imaginary = 0; 
    magnitude = a; 
    angle = 0; 
} 

// No argument passed, assume values of zero. 
Complex::Complex() 
{ 
    real = 0; 
    imaginary = 0; 
    magnitude = 0; 
    angle = 0; 
} 

// Convert real to imaginary and vice versa. 
double Complex::rectangularToMagnitude(double re, double im) {return sqrt((re*re)+(im*im));} 
double Complex::rectangularToAngle(double re, double im) {return atan2(im, re);} 
double Complex::polarToReal(double ma, double an) {return ma*cos(an);} 
double Complex::polarToImaginary(double ma, double an) {return ma*sin(an);} 

// Accessors 
double getReal() {return real;} 
double getImaginary() {return imaginary;} 
double getMagnitude() {return magnitude;} 
double getAngle() {return angle;} 

// Mutators 
void setRectangular(double re, double im) 
{ 
    real = re; 
    imaginary = im; 
    magnitude = rectangularToMagnitude(re, im); 
    angle = rectangularToAngle(re, im); 
} 

void setPolar(double ma, double an) 
{ 
    real = polarToReal(ma, an); 
    imaginary = polarToImaginary(ma, an); 
    magnitude = ma; 
    angle = an; 
} 

エラーあなたが定義する必要が

error C2065: 'real' : undeclared identifier 
error C2065: 'imaginary' : undeclared identifier 
error C2065: 'magnitude' : undeclared identifier 
error C2065: 'angle' : undeclared identifier 
error C2065: 'real' : undeclared identifier 
error C2065: 'imaginary' : undeclared identifier 
error C2065: 'magnitude' : undeclared identifier 
error C3861: 'rectangularToMagnitude': identifier not found 
error C2065: 'angle' : undeclared identifier 
error C3861: 'rectangularToAngle': identifier not found 
error C2065: 'real' : undeclared identifier 
error C3861: 'polarToReal': identifier not found 
error C2065: 'imaginary' : undeclared identifier 
error C3861: 'polarToImaginary': identifier not found 
error C2065: 'magnitude' : undeclared identifier 
error C2065: 'angle' : undeclared identifier 
IntelliSense: identifier "real" is undefined 
IntelliSense: identifier "imaginary" is undefined 
IntelliSense: identifier "magnitude" is undefined 
IntelliSense: identifier "angle" is undefined 
IntelliSense: identifier "real" is undefined 
IntelliSense: identifier "imaginary" is undefined 
IntelliSense: identifier "magnitude" is undefined 
IntelliSense: identifier "rectangularToMagnitude" is undefined 
IntelliSense: identifier "angle" is undefined 
IntelliSense: identifier "rectangularToAngle" is undefined 
IntelliSense: identifier "real" is undefined 
IntelliSense: identifier "polarToReal" is undefined 
IntelliSense: identifier "imaginary" is undefined 
IntelliSense: identifier "polarToImaginary" is undefined 
IntelliSense: identifier "magnitude" is undefined 
IntelliSense: identifier "angle" is undefined 
+0

質問に間違いを追加してください。 –

+0

ヘッダーファイルで宣言された変数が識別されていない26の宣言されていない識別子エラーがあります。ファイルは最初に作成されましたが(児童児童エラーあり)、ファイルを変更した後はもうビルドされません。 –

+0

ヘッダーがビルド中のプロジェクトに追加されていることを確認してください。 –

答えて

3

、例えば、getReal()錯体として:: getReal() .cppファイルに保存します。また、これはgetReal()の後のすべてのメンバー関数の場合です。

+0

素晴らしい、私は修正した、それは私のせいだった!どうもありがとう。 –

+0

それは見つけにくいものでした。しかし、コードを初めて見た人にとってはおそらく簡単でしょう。 –

関連する問題