ここから本文です

c++の質問です

dkk********さん

2012/5/1713:58:34

c++の質問です

c++の演算子のオーバーロードに関する質問です。

#include<iostream>
using namespace std;

class Car{
private:
int num;
double gas;

public:
Car(int n,double g);
void show();
friend ostream& operator<<(ostream& out,Car& c);
};

Car::Car(int n,double g){
num = n;gas = g;
}

ostream& operator<<(ostream& out, Car& c){
out << "ナンバー" << num << ":" << "ガソリン" << gas << "\n";
return out;
}
void Car::show(){
cout << "車のナンバーは" << num << "です。\n";
cout << "ガソリン量は" << gas << "です。\n";
}

int main(){
Car car1(1234,20.5);
cout << car1;
}

というプログラムのCarクラスでoperator << のオーバロードをしたいのですが、デバッグエラーになります。
sample1.cpp: 関数 ‘std::ostream& operator<<(std::ostream&, Car&)’ 内:
sample1.cpp:22:28: エラー: ‘num’ was not declared in this scope
sample1.cpp:22:60: エラー: ‘gas’ was not declared in this scope
どうしてでしょう。

閲覧数:
254
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

mag********さん

2012/5/1714:18:42

> out << "ナンバー" << num << ":" << "ガソリン" << gas << "\n";

out << "ナンバー" << c.num << ":" << "ガソリン" << c.gas << "\n";

質問した人からのコメント

2012/5/17 15:18:19

ありがとうございます。
できました。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる