2016-11-24 3 views
-1

単純な演算子をコンパイルしようとしましたが、それに対処する方法はまだ分かりません)。VS13 - C++ - プログラムがコンパイルされず、sal.hのエラーが発生しました(このファイルを編集していませんでした)。

(何もせずに、単にコンパイル用)main.cppに

#include "Rational.h" 
#include <iostream> 
using namespace std; 


void main() 
{ 

} 

Rational.h -

#ifndef __RATIONAL_H 
#define __RATIONAL_H 
class Rational 
{ 

private: 
    int numerator; 
    int denominator; 

public: 
    Rational(int numerator,int denominator); 
    void setNumerator(int newNumerator); 
    int getNumerator() const; 
    void setDenominator(int newdenominator); 
    int getDenominator() const; 
    //Rational operator+(Rational& other); 
    void print() const; 
} 
#endif 

Rational.cpp:

#include "Rational.h" 
#include <iostream> 
using namespace std; 
Rational::Rational(int newNumerator, int newDenominator){ 
    this->setNumerator(newNumerator); 
    this->setDenominator(newDenominator); 
} 
void Rational::setNumerator(int newNumerator){ 
    this->numerator = newNumerator; 
} 
int Rational::getNumerator() const{ 
    return this->numerator; 
} 
void Rational::setDenominator(int newDenominator){ 
    if (newDenominator != 0){ 
     this->denominator = newDenominator; 
    } 
} 
int Rational::getDenominator() const { 
    return this->denominator; 
} 
/* 
Rational Rational::operator+(Rational& other) { 
    if (denominator == other.denominator){ 
     return Rational(numerator + other.numerator, denominator); 
    } 
    else 
    { 
     return Rational(numerator*other.denominator + other.numerator*denominator, denominator*other.denominator); 
    } 
} 
*/ 
void Rational::print() const{ 
    cout << "Num: " << this->denominator << "\"" << this->numerator << endl; 
} 

、ここではからのエラーですサルのビルドと関連部分

sal.h & errors

+0

画像にリンクしていないテキストを投稿してください。画像からコードを再入力する人はいません – EdChum

+0

ありがとう、完了:) – user3652172

+0

C++ではなくCとしてコンパイルしているようです。 – molbdnilo

答えて

0

.hファイルでクラス宣言の後にセミコロンを忘れてしまった。

#ifndef __RATIONAL_H 
#define __RATIONAL_H 

class Rational 
{ 

private: 
    int numerator; 
    int denominator; 

public: 
    Rational(int numerator, int denominator); 
    void setNumerator(int newNumerator); 
    int getNumerator() const; 
    void setDenominator(int newdenominator); 
    int getDenominator() const; 
    //Rational operator+(Rational& other); 
    void print() const; 
};  <------ semicolon here you forgot 
#endif 

私は常にそれを行います。私はそれがコロンを持つ必要がある時と、そうでない時を区別することはできません。そして、エラーメッセージは、それが起こったときに意味をなさない。クラス宣言には関数、umが必要ですが、他に何がないかは考えられません。

+0

ありがとうございました!どのように私はエラーからそれを知ることができますか?あなたはそれをどうやって見つけたのですか? – user3652172

+0

@ user3652172私は初心者でもあります。セミコロンやヘッダーの問題がなくても意味をなさないこれらのばかげたメッセージに慣れ親しんでいます。 – Zebrafish

+0

終了中括弧の後にセミコロンが必要なものは、型定義(クラス、構造体、列挙型、共用体)です。 – molbdnilo

関連する問題